From a028bfd8f8a5da6e92ac2c6618387f6dfffdcd7c Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 7 Mar 2023 15:30:09 +0100 Subject: [PATCH 001/134] make context-provider test independent of external libs --- .../provide/context-provider.controller.test.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.controller.test.ts b/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.controller.test.ts index 70ba73eacb..621ae25a1a 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.controller.test.ts +++ b/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.controller.test.ts @@ -1,27 +1,26 @@ -import { expect, fixture, html } from '@open-wc/testing'; +import { expect, fixture, defineCE } from '@open-wc/testing'; import { UmbContextConsumer } from '../consume/context-consumer'; import { UmbContextProviderController } from './context-provider.controller'; -import { UmbControllerHostTestElement, UmbLitElement } from '@umbraco-cms/element'; +import { UmbLitElement } from '@umbraco-cms/element'; class MyClass { prop = 'value from provider'; } +class ControllerHostElement extends UmbLitElement {} +const controllerHostElement = defineCE(ControllerHostElement); + describe('UmbContextProviderController', () => { let instance: MyClass; let provider: UmbContextProviderController; let element: UmbLitElement; beforeEach(async () => { - element = await fixture(html``); + element = await fixture(`<${controllerHostElement}>`); instance = new MyClass(); provider = new UmbContextProviderController(element, 'my-test-context', instance); }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbControllerHostTestElement); - }); - describe('Public API', () => { describe('properties', () => { it('has a unique property', () => { From 8d47bf2c6c5fc601e1e4181cd1c52a75d5929dcc Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 7 Mar 2023 15:30:57 +0100 Subject: [PATCH 002/134] move context provider and host elements into src/core folder to avoid exposing them to the public --- src/Umbraco.Web.UI.Client/.storybook/preview.js | 9 +++++---- src/Umbraco.Web.UI.Client/libs/element/index.out.ts | 1 - src/Umbraco.Web.UI.Client/libs/element/index.ts | 2 -- .../context-provider.element.test.ts | 2 +- .../context-provider}/context-provider.element.ts | 11 ++++++++--- .../controller-host/controller-host-test.element.ts} | 6 +++--- .../controller-host/controller-host-test.test.ts} | 6 +++--- .../src/installer/shared/utils.story-helpers.ts | 2 +- 8 files changed, 21 insertions(+), 18 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/libs/element/index.out.ts rename src/Umbraco.Web.UI.Client/{libs/element => src/core/context-provider}/context-provider.element.test.ts (95%) rename src/Umbraco.Web.UI.Client/{libs/element => src/core/context-provider}/context-provider.element.ts (81%) rename src/Umbraco.Web.UI.Client/{libs/element/controller-host.element.ts => src/core/controller-host/controller-host-test.element.ts} (79%) rename src/Umbraco.Web.UI.Client/{libs/element/controller-host.element.test.ts => src/core/controller-host/controller-host-test.test.ts} (86%) diff --git a/src/Umbraco.Web.UI.Client/.storybook/preview.js b/src/Umbraco.Web.UI.Client/.storybook/preview.js index 8f05c5ff07..943845e252 100644 --- a/src/Umbraco.Web.UI.Client/.storybook/preview.js +++ b/src/Umbraco.Web.UI.Client/.storybook/preview.js @@ -25,8 +25,9 @@ import { UMB_MODAL_CONTEXT_TOKEN, UmbModalContext } from '../src/core/modal'; import { umbExtensionsRegistry } from '../libs/extensions-api'; +import '../src/core/context-provider/context-provider.element'; +import '../src/core/controller-host/controller-host-test.element'; import '../src/backoffice/shared/components/backoffice-frame/backoffice-notification-container.element'; -import '../libs/element/context-provider.element'; import '../src/backoffice/shared/components/backoffice-frame/backoffice-modal-container.element'; import '../src/backoffice/shared/components/code-block/code-block.element'; import '../src/backoffice/shared/components/workspace/workspace-layout/workspace-layout.element'; @@ -68,7 +69,7 @@ const documentTypeStoreProvider = (story) => html` const modalContextProvider = (story) => html` ${story()} @@ -118,9 +119,9 @@ export const parameters = { { name: 'White', value: '#ffffff', - }, + }, ], - }, + }, }; setCustomElements(customElementManifests); diff --git a/src/Umbraco.Web.UI.Client/libs/element/index.out.ts b/src/Umbraco.Web.UI.Client/libs/element/index.out.ts deleted file mode 100644 index 18d6126ccc..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/element/index.out.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './element.mixin'; diff --git a/src/Umbraco.Web.UI.Client/libs/element/index.ts b/src/Umbraco.Web.UI.Client/libs/element/index.ts index 411fa84341..4048b79c02 100644 --- a/src/Umbraco.Web.UI.Client/libs/element/index.ts +++ b/src/Umbraco.Web.UI.Client/libs/element/index.ts @@ -1,4 +1,2 @@ export * from './element.mixin'; export * from './lit-element.element'; -export * from './context-provider.element'; -export * from './controller-host.element'; diff --git a/src/Umbraco.Web.UI.Client/libs/element/context-provider.element.test.ts b/src/Umbraco.Web.UI.Client/src/core/context-provider/context-provider.element.test.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/libs/element/context-provider.element.test.ts rename to src/Umbraco.Web.UI.Client/src/core/context-provider/context-provider.element.test.ts index b9f622014a..b2f6c44311 100644 --- a/src/Umbraco.Web.UI.Client/libs/element/context-provider.element.test.ts +++ b/src/Umbraco.Web.UI.Client/src/core/context-provider/context-provider.element.test.ts @@ -1,7 +1,7 @@ import { expect, fixture, html } from '@open-wc/testing'; import { customElement } from 'lit/decorators.js'; import { UmbContextProviderElement } from './context-provider.element'; -import { UmbLitElement } from './lit-element.element'; +import { UmbLitElement } from '@umbraco-cms/element'; @customElement('umb-context-test') export class ContextTestElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/libs/element/context-provider.element.ts b/src/Umbraco.Web.UI.Client/src/core/context-provider/context-provider.element.ts similarity index 81% rename from src/Umbraco.Web.UI.Client/libs/element/context-provider.element.ts rename to src/Umbraco.Web.UI.Client/src/core/context-provider/context-provider.element.ts index 9d04a92ab2..5ffda8935e 100644 --- a/src/Umbraco.Web.UI.Client/libs/element/context-provider.element.ts +++ b/src/Umbraco.Web.UI.Client/src/core/context-provider/context-provider.element.ts @@ -1,17 +1,16 @@ import { html } from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { UmbLitElement } from './lit-element.element'; +import { UmbLitElement } from '@umbraco-cms/element'; import type { UmbControllerHostInterface } from '@umbraco-cms/controller'; @customElement('umb-context-provider') export class UmbContextProviderElement extends UmbLitElement { - /** * The value to provide to the context. * @required */ @property({ type: Object, attribute: false }) - create?: (host:UmbControllerHostInterface) => unknown; + create?: (host: UmbControllerHostInterface) => unknown; /** * The value to provide to the context. @@ -44,3 +43,9 @@ export class UmbContextProviderElement extends UmbLitElement { return html``; } } + +declare global { + interface HTMLElementTagNameMap { + 'umb-context-provider': UmbContextProviderElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/libs/element/controller-host.element.ts b/src/Umbraco.Web.UI.Client/src/core/controller-host/controller-host-test.element.ts similarity index 79% rename from src/Umbraco.Web.UI.Client/libs/element/controller-host.element.ts rename to src/Umbraco.Web.UI.Client/src/core/controller-host/controller-host-test.element.ts index 85dbc727fa..2b628489ce 100644 --- a/src/Umbraco.Web.UI.Client/libs/element/controller-host.element.ts +++ b/src/Umbraco.Web.UI.Client/src/core/controller-host/controller-host-test.element.ts @@ -1,7 +1,7 @@ -import { html } from 'lit'; +import { html } from 'lit-html'; import { customElement, property } from 'lit/decorators.js'; -import { UmbLitElement } from './lit-element.element'; -import type { UmbControllerHostInterface } from '@umbraco-cms/controller'; +import { UmbControllerHostInterface } from '@umbraco-cms/controller'; +import { UmbLitElement } from '@umbraco-cms/element'; @customElement('umb-controller-host-test') export class UmbControllerHostTestElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/libs/element/controller-host.element.test.ts b/src/Umbraco.Web.UI.Client/src/core/controller-host/controller-host-test.test.ts similarity index 86% rename from src/Umbraco.Web.UI.Client/libs/element/controller-host.element.test.ts rename to src/Umbraco.Web.UI.Client/src/core/controller-host/controller-host-test.test.ts index 8cc3e58aaf..5409840806 100644 --- a/src/Umbraco.Web.UI.Client/libs/element/controller-host.element.test.ts +++ b/src/Umbraco.Web.UI.Client/src/core/controller-host/controller-host-test.test.ts @@ -1,9 +1,9 @@ import { expect, fixture, html } from '@open-wc/testing'; import { customElement } from 'lit/decorators.js'; -import { UmbControllerHostTestElement } from './controller-host.element'; -import { UmbLitElement } from './lit-element.element'; +import { UmbControllerHostTestElement } from './controller-host-test.element'; +import { UmbLitElement } from '@umbraco-cms/element'; import { UmbContextProviderController } from '@umbraco-cms/context-api'; -import { UmbControllerHostInterface } from '@umbraco-cms/controller'; +import type { UmbControllerHostInterface } from '@umbraco-cms/controller'; @customElement('umb-controller-host-test-consumer') export class ControllerHostTestConsumerElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/installer/shared/utils.story-helpers.ts b/src/Umbraco.Web.UI.Client/src/installer/shared/utils.story-helpers.ts index bc0852f15f..7b03df75c4 100644 --- a/src/Umbraco.Web.UI.Client/src/installer/shared/utils.story-helpers.ts +++ b/src/Umbraco.Web.UI.Client/src/installer/shared/utils.story-helpers.ts @@ -1,6 +1,6 @@ import { html } from 'lit-html'; import { UmbInstallerContext } from '../installer.context'; -import '../../../libs/element/context-provider.element'; +import '../../core/context-provider/context-provider.element'; export const installerContextProvider = (story: any, installerContext = new UmbInstallerContext()) => html` Date: Tue, 7 Mar 2023 15:31:15 +0100 Subject: [PATCH 003/134] install plugin to build declarations for modules --- src/Umbraco.Web.UI.Client/package-lock.json | 56 +++++++++++++++++++++ src/Umbraco.Web.UI.Client/package.json | 1 + 2 files changed, 57 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 7979cc6c6e..3698a72442 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -66,6 +66,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "rollup": "^3.10.0", + "rollup-plugin-dts": "^5.2.0", "rollup-plugin-esbuild": "^5.0.0", "rollup-plugin-url": "^3.0.1", "storybook": "^7.0.0-beta.59", @@ -16329,6 +16330,40 @@ "fsevents": "~2.3.2" } }, + "node_modules/rollup-plugin-dts": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-5.2.0.tgz", + "integrity": "sha512-B68T/haEu2MKcz4kNUhXB8/h5sq4gpplHAJIYNHbh8cp4ZkvzDvNca/11KQdFrB9ZeKucegQIotzo5T0JUtM8w==", + "dev": true, + "dependencies": { + "magic-string": "^0.29.0" + }, + "engines": { + "node": ">=v14" + }, + "funding": { + "url": "https://github.com/sponsors/Swatinem" + }, + "optionalDependencies": { + "@babel/code-frame": "^7.18.6" + }, + "peerDependencies": { + "rollup": "^3.0.0", + "typescript": "^4.1" + } + }, + "node_modules/rollup-plugin-dts/node_modules/magic-string": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz", + "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/rollup-plugin-esbuild": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-5.0.0.tgz", @@ -30876,6 +30911,27 @@ "fsevents": "~2.3.2" } }, + "rollup-plugin-dts": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-5.2.0.tgz", + "integrity": "sha512-B68T/haEu2MKcz4kNUhXB8/h5sq4gpplHAJIYNHbh8cp4ZkvzDvNca/11KQdFrB9ZeKucegQIotzo5T0JUtM8w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "magic-string": "^0.29.0" + }, + "dependencies": { + "magic-string": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz", + "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.13" + } + } + } + }, "rollup-plugin-esbuild": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-5.0.0.tgz", diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 16befe9624..4c618010b5 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -114,6 +114,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "rollup": "^3.10.0", + "rollup-plugin-dts": "^5.2.0", "rollup-plugin-esbuild": "^5.0.0", "rollup-plugin-url": "^3.0.1", "storybook": "^7.0.0-beta.59", From 8fd2bf910c54fbe4052b84e667cf2f70dff419eb Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 7 Mar 2023 15:31:56 +0100 Subject: [PATCH 004/134] build declarations for libraries --- .../libs/backend-api/rollup.config.js | 4 +-- .../libs/context-api/rollup.config.js | 4 +-- .../libs/controller/rollup.config.js | 4 --- .../libs/element/rollup.config.js | 5 ++- .../libs/entity-action/rollup.config.js | 4 --- .../libs/events/rollup.config.js | 4 --- .../libs/extensions-api/rollup.config.js | 4 --- .../libs/extensions-registry/rollup.config.js | 4 --- .../libs/notification/rollup.config.js | 4 --- .../libs/observable-api/rollup.config.js | 4 --- .../libs/resources/rollup.config.js | 4 +-- .../libs/router/rollup.config.js | 4 --- .../libs/store/rollup.config.js | 4 --- .../libs/utils/rollup.config.js | 4 +-- .../libs/workspace/rollup.config.js | 4 +-- .../utils/rollup.config.js | 32 +++++++++++++------ 16 files changed, 34 insertions(+), 59 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/libs/controller/rollup.config.js delete mode 100644 src/Umbraco.Web.UI.Client/libs/entity-action/rollup.config.js delete mode 100644 src/Umbraco.Web.UI.Client/libs/events/rollup.config.js delete mode 100644 src/Umbraco.Web.UI.Client/libs/extensions-api/rollup.config.js delete mode 100644 src/Umbraco.Web.UI.Client/libs/extensions-registry/rollup.config.js delete mode 100644 src/Umbraco.Web.UI.Client/libs/notification/rollup.config.js delete mode 100644 src/Umbraco.Web.UI.Client/libs/observable-api/rollup.config.js delete mode 100644 src/Umbraco.Web.UI.Client/libs/router/rollup.config.js delete mode 100644 src/Umbraco.Web.UI.Client/libs/store/rollup.config.js diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/backend-api/rollup.config.js index 945c0afe88..44c6c08405 100644 --- a/src/Umbraco.Web.UI.Client/libs/backend-api/rollup.config.js +++ b/src/Umbraco.Web.UI.Client/libs/backend-api/rollup.config.js @@ -1,4 +1,4 @@ import config from '../../utils/rollup.config.js'; -export default { +export default [ ...config, -}; +]; diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/context-api/rollup.config.js index 945c0afe88..44c6c08405 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/rollup.config.js +++ b/src/Umbraco.Web.UI.Client/libs/context-api/rollup.config.js @@ -1,4 +1,4 @@ import config from '../../utils/rollup.config.js'; -export default { +export default [ ...config, -}; +]; diff --git a/src/Umbraco.Web.UI.Client/libs/controller/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/controller/rollup.config.js deleted file mode 100644 index 945c0afe88..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/controller/rollup.config.js +++ /dev/null @@ -1,4 +0,0 @@ -import config from '../../utils/rollup.config.js'; -export default { - ...config, -}; diff --git a/src/Umbraco.Web.UI.Client/libs/element/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/element/rollup.config.js index e106b525af..44c6c08405 100644 --- a/src/Umbraco.Web.UI.Client/libs/element/rollup.config.js +++ b/src/Umbraco.Web.UI.Client/libs/element/rollup.config.js @@ -1,5 +1,4 @@ import config from '../../utils/rollup.config.js'; -export default { +export default [ ...config, - input: 'index.out.ts' -}; +]; diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/entity-action/rollup.config.js deleted file mode 100644 index 945c0afe88..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/rollup.config.js +++ /dev/null @@ -1,4 +0,0 @@ -import config from '../../utils/rollup.config.js'; -export default { - ...config, -}; diff --git a/src/Umbraco.Web.UI.Client/libs/events/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/events/rollup.config.js deleted file mode 100644 index 945c0afe88..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/events/rollup.config.js +++ /dev/null @@ -1,4 +0,0 @@ -import config from '../../utils/rollup.config.js'; -export default { - ...config, -}; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-api/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/extensions-api/rollup.config.js deleted file mode 100644 index 945c0afe88..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/extensions-api/rollup.config.js +++ /dev/null @@ -1,4 +0,0 @@ -import config from '../../utils/rollup.config.js'; -export default { - ...config, -}; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/extensions-registry/rollup.config.js deleted file mode 100644 index 945c0afe88..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/rollup.config.js +++ /dev/null @@ -1,4 +0,0 @@ -import config from '../../utils/rollup.config.js'; -export default { - ...config, -}; diff --git a/src/Umbraco.Web.UI.Client/libs/notification/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/notification/rollup.config.js deleted file mode 100644 index 945c0afe88..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/notification/rollup.config.js +++ /dev/null @@ -1,4 +0,0 @@ -import config from '../../utils/rollup.config.js'; -export default { - ...config, -}; diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/observable-api/rollup.config.js deleted file mode 100644 index 945c0afe88..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/rollup.config.js +++ /dev/null @@ -1,4 +0,0 @@ -import config from '../../utils/rollup.config.js'; -export default { - ...config, -}; diff --git a/src/Umbraco.Web.UI.Client/libs/resources/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/resources/rollup.config.js index 945c0afe88..44c6c08405 100644 --- a/src/Umbraco.Web.UI.Client/libs/resources/rollup.config.js +++ b/src/Umbraco.Web.UI.Client/libs/resources/rollup.config.js @@ -1,4 +1,4 @@ import config from '../../utils/rollup.config.js'; -export default { +export default [ ...config, -}; +]; diff --git a/src/Umbraco.Web.UI.Client/libs/router/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/router/rollup.config.js deleted file mode 100644 index 945c0afe88..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/router/rollup.config.js +++ /dev/null @@ -1,4 +0,0 @@ -import config from '../../utils/rollup.config.js'; -export default { - ...config, -}; diff --git a/src/Umbraco.Web.UI.Client/libs/store/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/store/rollup.config.js deleted file mode 100644 index 945c0afe88..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/store/rollup.config.js +++ /dev/null @@ -1,4 +0,0 @@ -import config from '../../utils/rollup.config.js'; -export default { - ...config, -}; diff --git a/src/Umbraco.Web.UI.Client/libs/utils/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/utils/rollup.config.js index 945c0afe88..44c6c08405 100644 --- a/src/Umbraco.Web.UI.Client/libs/utils/rollup.config.js +++ b/src/Umbraco.Web.UI.Client/libs/utils/rollup.config.js @@ -1,4 +1,4 @@ import config from '../../utils/rollup.config.js'; -export default { +export default [ ...config, -}; +]; diff --git a/src/Umbraco.Web.UI.Client/libs/workspace/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/workspace/rollup.config.js index 945c0afe88..44c6c08405 100644 --- a/src/Umbraco.Web.UI.Client/libs/workspace/rollup.config.js +++ b/src/Umbraco.Web.UI.Client/libs/workspace/rollup.config.js @@ -1,4 +1,4 @@ import config from '../../utils/rollup.config.js'; -export default { +export default [ ...config, -}; +]; diff --git a/src/Umbraco.Web.UI.Client/utils/rollup.config.js b/src/Umbraco.Web.UI.Client/utils/rollup.config.js index e096f7cfb6..75f6f28cfe 100644 --- a/src/Umbraco.Web.UI.Client/utils/rollup.config.js +++ b/src/Umbraco.Web.UI.Client/utils/rollup.config.js @@ -1,15 +1,27 @@ import esbuild from 'rollup-plugin-esbuild'; import pluginJson from '@rollup/plugin-json'; import { nodeResolve } from '@rollup/plugin-node-resolve'; +import dts from 'rollup-plugin-dts'; -/** @type {import('rollup').RollupOptions} */ -export default { - input: 'index.ts', - external: [/^@umbraco-cms\//], - output: { - file: 'dist/index.js', - format: 'es', - sourcemap: true, +/** @type {import('rollup').RollupOptions[]} */ +export default [ + { + input: 'index.ts', + external: [/^@umbraco-cms\//, /^lit/], + output: { + file: 'dist/index.js', + format: 'es', + sourcemap: true + }, + plugins: [nodeResolve(), pluginJson(), esbuild()] }, - plugins: [nodeResolve(), pluginJson(), esbuild({ sourceMap: true })], -}; + { + input: 'index.ts', + external: [/^@umbraco-cms\//, /^lit/], + output: { + file: './dist/index.d.ts', + format: 'es' + }, + plugins: [dts()], + } +]; From bf81279cebdcd3f1d1c13532b3060c1fda72f178 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 7 Mar 2023 15:32:58 +0100 Subject: [PATCH 005/134] optimise import of repository type --- .../src/backoffice/media/media/repository/media.repository.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/repository/media.repository.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/repository/media.repository.ts index c5fd5107e7..2ffa1d8383 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/repository/media.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/repository/media.repository.ts @@ -1,8 +1,8 @@ -import type { RepositoryTreeDataSource } from '../../../../../libs/repository/repository-tree-data-source.interface'; import { MediaTreeServerDataSource } from './sources/media.tree.server.data'; import { UmbMediaTreeStore, UMB_MEDIA_TREE_STORE_CONTEXT_TOKEN } from './media.tree.store'; import { UmbMediaDetailStore, UMB_MEDIA_DETAIL_STORE_CONTEXT_TOKEN } from './media.detail.store'; import { UmbMediaDetailServerDataSource } from './sources/media.detail.server.data'; +import type { RepositoryTreeDataSource } from '@umbraco-cms/repository'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; import { ProblemDetailsModel } from '@umbraco-cms/backend-api'; From f7ac39b352f6fa8df5ef29302d34485879c878ca Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 7 Mar 2023 15:40:16 +0100 Subject: [PATCH 006/134] optimise config of dts --- src/Umbraco.Web.UI.Client/utils/rollup.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/utils/rollup.config.js b/src/Umbraco.Web.UI.Client/utils/rollup.config.js index 75f6f28cfe..1f50c0ba4b 100644 --- a/src/Umbraco.Web.UI.Client/utils/rollup.config.js +++ b/src/Umbraco.Web.UI.Client/utils/rollup.config.js @@ -17,7 +17,7 @@ export default [ }, { input: 'index.ts', - external: [/^@umbraco-cms\//, /^lit/], + external: [/^@umbraco-cms\//], output: { file: './dist/index.d.ts', format: 'es' From 17e0866f325e0c8efff7363ba1c573266101db51 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 7 Mar 2023 15:40:28 +0100 Subject: [PATCH 007/134] only consider index.module.ts for export --- src/Umbraco.Web.UI.Client/libs/element/index.module.ts | 1 + src/Umbraco.Web.UI.Client/libs/element/rollup.config.js | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/libs/element/index.module.ts diff --git a/src/Umbraco.Web.UI.Client/libs/element/index.module.ts b/src/Umbraco.Web.UI.Client/libs/element/index.module.ts new file mode 100644 index 0000000000..18d6126ccc --- /dev/null +++ b/src/Umbraco.Web.UI.Client/libs/element/index.module.ts @@ -0,0 +1 @@ +export * from './element.mixin'; diff --git a/src/Umbraco.Web.UI.Client/libs/element/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/element/rollup.config.js index 44c6c08405..d3af596f5f 100644 --- a/src/Umbraco.Web.UI.Client/libs/element/rollup.config.js +++ b/src/Umbraco.Web.UI.Client/libs/element/rollup.config.js @@ -1,4 +1,6 @@ import config from '../../utils/rollup.config.js'; -export default [ - ...config, -]; + +config[0].input = 'index.module.ts'; +config[1].input = 'index.module.ts'; + +export default config; From 0ffc7d4b20617fac9f85c2f986c1307bac800e2e Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 7 Mar 2023 15:57:12 +0100 Subject: [PATCH 008/134] move router library into src/core to avoid exposing it to the public --- src/Umbraco.Web.UI.Client/src/app.ts | 4 ++-- .../src/backoffice/backoffice.element.ts | 2 -- .../{libs => src/core}/router/index.ts | 1 + .../{libs => src/core}/router/router-slot-change.event.ts | 0 .../{libs => src/core}/router/router-slot-init.event.ts | 0 .../{libs => src/core}/router/router-slot.element.ts | 6 ++++-- src/Umbraco.Web.UI.Client/tsconfig.json | 2 +- src/Umbraco.Web.UI.Client/web-test-runner.config.mjs | 5 ++--- 8 files changed, 10 insertions(+), 10 deletions(-) rename src/Umbraco.Web.UI.Client/{libs => src/core}/router/index.ts (81%) rename src/Umbraco.Web.UI.Client/{libs => src/core}/router/router-slot-change.event.ts (100%) rename src/Umbraco.Web.UI.Client/{libs => src/core}/router/router-slot-init.event.ts (100%) rename src/Umbraco.Web.UI.Client/{libs => src/core}/router/router-slot.element.ts (90%) diff --git a/src/Umbraco.Web.UI.Client/src/app.ts b/src/Umbraco.Web.UI.Client/src/app.ts index 2b389e431d..3dafb8e9df 100644 --- a/src/Umbraco.Web.UI.Client/src/app.ts +++ b/src/Umbraco.Web.UI.Client/src/app.ts @@ -7,14 +7,14 @@ import '@umbraco-ui/uui-modal-container'; import '@umbraco-ui/uui-modal-dialog'; import '@umbraco-ui/uui-modal-sidebar'; import 'element-internals-polyfill'; -import '@umbraco-cms/router'; -import type { Guard, IRoute } from 'router-slot/model'; +import './core/router/router-slot.element'; import { UUIIconRegistryEssential } from '@umbraco-ui/uui'; import { css, html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; +import type { Guard, IRoute } from '@umbraco-cms/router'; import { UmbLitElement } from '@umbraco-cms/element'; import { tryExecuteAndNotify } from '@umbraco-cms/resources'; import { OpenAPI, RuntimeLevelModel, ServerResource } from '@umbraco-cms/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/backoffice.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/backoffice.element.ts index cee5fd1db9..31d1af18bc 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/backoffice.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/backoffice.element.ts @@ -49,8 +49,6 @@ import { umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/notification'; import { UmbLitElement } from '@umbraco-cms/element'; -import '@umbraco-cms/router'; - // Domains import './settings'; import './documents'; diff --git a/src/Umbraco.Web.UI.Client/libs/router/index.ts b/src/Umbraco.Web.UI.Client/src/core/router/index.ts similarity index 81% rename from src/Umbraco.Web.UI.Client/libs/router/index.ts rename to src/Umbraco.Web.UI.Client/src/core/router/index.ts index 9ba378560a..75fd79f5e4 100644 --- a/src/Umbraco.Web.UI.Client/libs/router/index.ts +++ b/src/Umbraco.Web.UI.Client/src/core/router/index.ts @@ -1,3 +1,4 @@ +export * from 'router-slot'; export * from './router-slot.element'; export * from './router-slot-change.event'; export * from './router-slot-init.event'; diff --git a/src/Umbraco.Web.UI.Client/libs/router/router-slot-change.event.ts b/src/Umbraco.Web.UI.Client/src/core/router/router-slot-change.event.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/router/router-slot-change.event.ts rename to src/Umbraco.Web.UI.Client/src/core/router/router-slot-change.event.ts diff --git a/src/Umbraco.Web.UI.Client/libs/router/router-slot-init.event.ts b/src/Umbraco.Web.UI.Client/src/core/router/router-slot-init.event.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/router/router-slot-init.event.ts rename to src/Umbraco.Web.UI.Client/src/core/router/router-slot-init.event.ts diff --git a/src/Umbraco.Web.UI.Client/libs/router/router-slot.element.ts b/src/Umbraco.Web.UI.Client/src/core/router/router-slot.element.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/libs/router/router-slot.element.ts rename to src/Umbraco.Web.UI.Client/src/core/router/router-slot.element.ts index 8bf9e2a175..a343c9acf4 100644 --- a/src/Umbraco.Web.UI.Client/libs/router/router-slot.element.ts +++ b/src/Umbraco.Web.UI.Client/src/core/router/router-slot.element.ts @@ -1,7 +1,9 @@ -import { IRoute, RouterSlot } from 'router-slot'; +import type { IRoute } from 'router-slot/model'; +import { RouterSlot } from 'router-slot'; import { LitElement, PropertyValueMap } from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/router'; +import { UmbRouterSlotInitEvent } from './router-slot-init.event'; +import { UmbRouterSlotChangeEvent } from './router-slot-change.event'; /** * @element umb-router-slot-element diff --git a/src/Umbraco.Web.UI.Client/tsconfig.json b/src/Umbraco.Web.UI.Client/tsconfig.json index 1e55e986af..73ddb9a903 100644 --- a/src/Umbraco.Web.UI.Client/tsconfig.json +++ b/src/Umbraco.Web.UI.Client/tsconfig.json @@ -35,7 +35,7 @@ "@umbraco-cms/entity-action": ["libs/entity-action"], "@umbraco-cms/workspace": ["libs/workspace"], "@umbraco-cms/utils": ["libs/utils"], - "@umbraco-cms/router": ["libs/router"], + "@umbraco-cms/router": ["src/core/router"], "@umbraco-cms/test-utils": ["libs/test-utils"], "@umbraco-cms/repository": ["libs/repository"], "@umbraco-cms/resources": ["libs/resources"], 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 bcdbcb895c..70be4bf8f8 100644 --- a/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs +++ b/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs @@ -55,8 +55,8 @@ export default { '@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/repository': './libs/repository', - '@umbraco-cms/router': './libs/router/index.ts', + '@umbraco-cms/repository': './libs/repository/index.ts', + '@umbraco-cms/router': './src/core/router/index.ts', }, }, }, @@ -82,7 +82,6 @@ export default { `, From c02b5929aff87283d664ead0843ba38df79e99ac Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 7 Mar 2023 15:57:42 +0100 Subject: [PATCH 009/134] optimise import of router and avoid importing directly from underlying router-slot module --- .../views/document-workspace-view-edit.element.ts | 3 +-- .../package-repo/workspace/workspace-package.element.ts | 1 - .../created/created-packages-section-view.element.ts | 4 ++-- .../dashboard-examine-management.element.ts | 4 +--- .../health-check/dashboard-health-check.element.ts | 2 +- .../views/health-check-group-box-overview.element.ts | 8 ++------ .../backoffice-frame/backoffice-main.element.ts | 2 +- .../section-dashboards/section-dashboards.element.ts | 5 ++--- .../shared/components/section/section.element.ts | 3 +-- .../workspace-layout/workspace-layout.element.ts | 3 +-- .../views/users/section-view-users.element.ts | 4 ++-- .../views/users/workspace-view-users-overview.element.ts | 4 ++-- 12 files changed, 16 insertions(+), 27 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/workspace/views/document-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/workspace/views/document-workspace-view-edit.element.ts index 702f87f209..a7ac1b3fd3 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/workspace/views/document-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/workspace/views/document-workspace-view-edit.element.ts @@ -2,11 +2,10 @@ import { css, html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, state } from 'lit/decorators.js'; import { repeat } from 'lit/directives/repeat.js'; -import { IRoute } from 'router-slot'; +import type { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent, IRoute } from '@umbraco-cms/router'; import { UmbDocumentWorkspaceContext } from '../document-workspace.context'; import { UmbLitElement } from '@umbraco-cms/element'; import { PropertyTypeContainerViewModelBaseModel } from '@umbraco-cms/backend-api'; -import { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/router'; @customElement('umb-document-workspace-view-edit') export class UmbDocumentWorkspaceViewEditElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-repo/workspace/workspace-package.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-repo/workspace/workspace-package.element.ts index 466915fa9d..6ea49d35c9 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-repo/workspace/workspace-package.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-repo/workspace/workspace-package.element.ts @@ -1,7 +1,6 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html, LitElement } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; -import { path, stripSlash } from 'router-slot'; @customElement('umb-workspace-package') export class UmbWorkspacePackageElement extends LitElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/created/created-packages-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/created/created-packages-section-view.element.ts index 44beef5a18..15f3abadbf 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/created/created-packages-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/created/created-packages-section-view.element.ts @@ -1,6 +1,6 @@ -import { css, html } from 'lit'; +import { html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; -import { IRoute, IRoutingInfo } from 'router-slot'; +import type { IRoute, IRoutingInfo } from '@umbraco-cms/router'; import type { ManifestTree, ManifestWorkspace } from '@umbraco-cms/models'; import { createExtensionElement, umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; import { UmbLitElement } from '@umbraco-cms/element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/dashboard-examine-management.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/dashboard-examine-management.element.ts index 753b15908f..b587d0526c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/dashboard-examine-management.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/dashboard-examine-management.element.ts @@ -1,12 +1,11 @@ import { html, css, nothing } from 'lit'; import { customElement, state } from 'lit/decorators.js'; -import { IRoute, IRoutingInfo, path } from 'router-slot'; +import type { IRoute, IRoutingInfo, UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/router'; import { UmbDashboardExamineIndexElement } from './views/section-view-examine-indexers'; import { UmbDashboardExamineSearcherElement } from './views/section-view-examine-searchers'; import { UmbLitElement } from '@umbraco-cms/element'; -import { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/router'; @customElement('umb-dashboard-examine-management') export class UmbDashboardExamineManagementElement extends UmbLitElement { @@ -52,7 +51,6 @@ export class UmbDashboardExamineManagementElement extends UmbLitElement { @state() private _activePath = ''; - render() { return html` ${this._routerPath && this._activePath !== '' ? html` ← Back to overview ` diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/health-check/dashboard-health-check.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/health-check/dashboard-health-check.element.ts index 6bdb0ee69b..449131b532 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/health-check/dashboard-health-check.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/health-check/dashboard-health-check.element.ts @@ -1,6 +1,6 @@ import { html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; -import type { IRoute, IRoutingInfo } from 'router-slot'; +import type { IRoute, IRoutingInfo } from '@umbraco-cms/router'; import { UmbDashboardHealthCheckGroupElement } from './views/health-check-group.element'; import { UmbHealthCheckDashboardContext, diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/health-check/views/health-check-group-box-overview.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/health-check/views/health-check-group-box-overview.element.ts index fbe4a51666..63ef1f378d 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/health-check/views/health-check-group-box-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/health-check/views/health-check-group-box-overview.element.ts @@ -1,18 +1,14 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html, nothing } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; -import { ensureSlash, path } from 'router-slot'; +import { ensureSlash, path } from '@umbraco-cms/router'; import { UmbHealthCheckContext } from '../health-check.context'; import { UMB_HEALTHCHECK_DASHBOARD_CONTEXT_TOKEN, UmbHealthCheckDashboardContext, } from '../health-check-dashboard.context'; import type { ManifestHealthCheck } from '@umbraco-cms/models'; -import { - HealthCheckGroupWithResultModel, - HealthCheckWithResultModel, - StatusResultTypeModel, -} from '@umbraco-cms/backend-api'; +import { HealthCheckGroupWithResultModel, StatusResultTypeModel } from '@umbraco-cms/backend-api'; import { UmbLitElement } from '@umbraco-cms/element'; @customElement('umb-health-check-group-box-overview') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice-main.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice-main.element.ts index cd352e751b..b2bc5638a9 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice-main.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice-main.element.ts @@ -2,12 +2,12 @@ import { defineElement } from '@umbraco-ui/uui-base/lib/registration'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html } from 'lit'; import { state } from 'lit/decorators.js'; +import type { UmbRouterSlotChangeEvent } from '@umbraco-cms/router'; import { UmbSectionContext, UMB_SECTION_CONTEXT_TOKEN } from '../section/section.context'; import { UmbBackofficeContext, UMB_BACKOFFICE_CONTEXT_TOKEN } from './backoffice.context'; import type { ManifestSection } from '@umbraco-cms/models'; import { UmbLitElement } from '@umbraco-cms/element'; import { createExtensionElementOrFallback } from '@umbraco-cms/extensions-api'; -import { UmbRouterSlotChangeEvent } from '@umbraco-cms/router'; @defineElement('umb-backoffice-main') export class UmbBackofficeMain extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section-dashboards/section-dashboards.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section-dashboards/section-dashboards.element.ts index e38dd43cb5..509d153c39 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section-dashboards/section-dashboards.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section-dashboards/section-dashboards.element.ts @@ -1,14 +1,13 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html, nothing } from 'lit'; import { customElement, state } from 'lit/decorators.js'; -import { IRoutingInfo } from 'router-slot'; import { first, map } from 'rxjs'; +import type { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent, IRoutingInfo } from '@umbraco-cms/router'; import { UmbSectionContext, UMB_SECTION_CONTEXT_TOKEN } from '../section.context'; import { createExtensionElement, umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; -import type { ManifestDashboard, ManifestDashboardCollection, ManifestWithMeta } from '@umbraco-cms/models'; +import type { ManifestDashboard, ManifestDashboardCollection } from '@umbraco-cms/models'; import { UmbLitElement } from '@umbraco-cms/element'; -import { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/router'; @customElement('umb-section-dashboards') export class UmbSectionDashboardsElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section.element.ts index 73a92e110c..46f147c541 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section.element.ts @@ -2,7 +2,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html, nothing } from 'lit'; import { customElement, state } from 'lit/decorators.js'; import { map } from 'rxjs'; -import { IRoutingInfo } from 'router-slot'; +import type { UmbRouterSlotChangeEvent, IRoutingInfo } from '@umbraco-cms/router'; import type { UmbWorkspaceEntityElement } from '../workspace/workspace-entity-element.interface'; import { UmbSectionContext, UMB_SECTION_CONTEXT_TOKEN } from './section.context'; import type { ManifestSectionView, ManifestWorkspace, ManifestMenuSectionSidebarApp } from '@umbraco-cms/models'; @@ -12,7 +12,6 @@ import { UmbLitElement } from '@umbraco-cms/element'; import './section-sidebar-menu/section-sidebar-menu.element.ts'; import './section-views/section-views.element.ts'; import '../../../settings/languages/app-language-select/app-language-select.element.ts'; -import { UmbRouterSlotChangeEvent } from '@umbraco-cms/router'; @customElement('umb-section') export class UmbSectionElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-layout/workspace-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-layout/workspace-layout.element.ts index 1eb4aa0159..2dbd3b9e08 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-layout/workspace-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-layout/workspace-layout.element.ts @@ -1,11 +1,10 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html, nothing } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; -import { IRoutingInfo } from 'router-slot'; import { map } from 'rxjs'; import { repeat } from 'lit/directives/repeat.js'; -import type { UmbRouterSlotInitEvent, UmbRouterSlotChangeEvent } from '@umbraco-cms/router'; +import type { UmbRouterSlotInitEvent, UmbRouterSlotChangeEvent, IRoutingInfo } from '@umbraco-cms/router'; import { createExtensionElement, umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; import type { ManifestWorkspaceAction, diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/section-view-users.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/section-view-users.element.ts index 2412500318..f5dda922fa 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/section-view-users.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/section-view-users.element.ts @@ -1,9 +1,9 @@ import { css, html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, state } from 'lit/decorators.js'; -import type { IRoute, IRoutingInfo } from 'router-slot'; +import type { IRoute, IRoutingInfo } from '@umbraco-cms/router'; import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../../users/user.store'; -import { umbExtensionsRegistry , createExtensionElement } from '@umbraco-cms/extensions-api'; +import { umbExtensionsRegistry, createExtensionElement } from '@umbraco-cms/extensions-api'; import './list-view-layouts/table/workspace-view-users-table.element'; import './list-view-layouts/grid/workspace-view-users-grid.element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-overview.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-overview.element.ts index 1b38d55de7..2835d003d2 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-overview.element.ts @@ -1,12 +1,12 @@ import { css, html, nothing } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, state } from 'lit/decorators.js'; -import { IRoute } from 'router-slot'; +import type { IRoute } from '@umbraco-cms/router'; import { UUIPopoverElement } from '@umbraco-ui/uui'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../core/modal'; import type { UmbSectionViewUsersElement } from './section-view-users.element'; import { UmbLitElement } from '@umbraco-cms/element'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'src/core/modal'; import './list-view-layouts/table/workspace-view-users-table.element'; import './list-view-layouts/grid/workspace-view-users-grid.element'; From dd151dd2d599d022748d89ef6b93c58a36ee67e9 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 7 Mar 2023 16:02:23 +0100 Subject: [PATCH 010/134] add rollup exports to more libs because of references --- src/Umbraco.Web.UI.Client/libs/controller/rollup.config.js | 3 +++ src/Umbraco.Web.UI.Client/libs/models/rollup.config.js | 3 +++ src/Umbraco.Web.UI.Client/libs/observable-api/rollup.config.js | 3 +++ 3 files changed, 9 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/libs/controller/rollup.config.js create mode 100644 src/Umbraco.Web.UI.Client/libs/models/rollup.config.js create mode 100644 src/Umbraco.Web.UI.Client/libs/observable-api/rollup.config.js diff --git a/src/Umbraco.Web.UI.Client/libs/controller/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/controller/rollup.config.js new file mode 100644 index 0000000000..35421e5ce7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/libs/controller/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/libs/models/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/models/rollup.config.js new file mode 100644 index 0000000000..35421e5ce7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/libs/models/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/libs/observable-api/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/observable-api/rollup.config.js new file mode 100644 index 0000000000..35421e5ce7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/libs/observable-api/rollup.config.js @@ -0,0 +1,3 @@ +import config from '../../utils/rollup.config.js'; + +export default config; From 3eca46f17d5d4915eb3f18ecd9f00b68946cc074 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 7 Mar 2023 16:04:31 +0100 Subject: [PATCH 011/134] optimise build of workspace lib --- .../libs/workspace/actions/save/save.action.ts | 4 ++-- .../libs/workspace/actions/workspace-action-base.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/libs/workspace/actions/save/save.action.ts b/src/Umbraco.Web.UI.Client/libs/workspace/actions/save/save.action.ts index 7b178ef44a..5429581259 100644 --- a/src/Umbraco.Web.UI.Client/libs/workspace/actions/save/save.action.ts +++ b/src/Umbraco.Web.UI.Client/libs/workspace/actions/save/save.action.ts @@ -1,6 +1,6 @@ import { UmbWorkspaceContextInterface } from '../../../../src/backoffice/shared/components/workspace/workspace-context/workspace-context.interface'; -import { UmbWorkspaceActionBase } from '@umbraco-cms/workspace'; -import { UmbControllerHostInterface } from '@umbraco-cms/controller'; +import { UmbWorkspaceActionBase } from '../workspace-action-base'; +import type { UmbControllerHostInterface } from '@umbraco-cms/controller'; // TODO: add interface for repo/partial repo/save-repo export class UmbSaveWorkspaceAction extends UmbWorkspaceActionBase { diff --git a/src/Umbraco.Web.UI.Client/libs/workspace/actions/workspace-action-base.ts b/src/Umbraco.Web.UI.Client/libs/workspace/actions/workspace-action-base.ts index 95d16263ce..f717762b18 100644 --- a/src/Umbraco.Web.UI.Client/libs/workspace/actions/workspace-action-base.ts +++ b/src/Umbraco.Web.UI.Client/libs/workspace/actions/workspace-action-base.ts @@ -1,4 +1,4 @@ -import { UmbControllerHostInterface } from '@umbraco-cms/controller'; +import type { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; export interface UmbWorkspaceAction { From d843ab6a44f4ec0fa72d8d701a94d5d46c569eb2 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 7 Mar 2023 16:08:53 +0100 Subject: [PATCH 012/134] add rollup to extensions-registry --- .../libs/extensions-registry/rollup.config.js | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/libs/extensions-registry/rollup.config.js diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/extensions-registry/rollup.config.js new file mode 100644 index 0000000000..35421e5ce7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/rollup.config.js @@ -0,0 +1,3 @@ +import config from '../../utils/rollup.config.js'; + +export default config; From 4bd341d96828f6eddf53313005ed9cba1e741469 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 7 Mar 2023 19:37:11 +0100 Subject: [PATCH 013/134] add modal extension point --- .../libs/extensions-registry/modal.models.ts | 5 +++++ src/Umbraco.Web.UI.Client/libs/extensions-registry/models.ts | 3 +++ 2 files changed, 8 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/libs/extensions-registry/modal.models.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/modal.models.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/modal.models.ts new file mode 100644 index 0000000000..901a998bf5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/modal.models.ts @@ -0,0 +1,5 @@ +import type { ManifestElement } from './models'; + +export interface ManifestModal extends ManifestElement { + type: 'modal'; +} diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models.ts index 4e9bd27adf..c9851c0c93 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models.ts @@ -22,6 +22,7 @@ import type { ManifestWorkspaceAction } from './workspace-action.models'; import type { ManifestWorkspaceView } from './workspace-view.models'; import type { ManifestWorkspaceViewCollection } from './workspace-view-collection.models'; import type { ManifestRepository } from './repository.models'; +import type { ManifestModal } from './modal.models'; import type { ClassConstructor } from '@umbraco-cms/models'; export * from './collection-view.models'; @@ -48,6 +49,7 @@ export * from './workspace-view-collection.models'; export * from './workspace-view.models'; export * from './repository.models'; export * from './workspace.models'; +export * from './modal.models'; export type ManifestTypes = | ManifestCollectionView @@ -78,6 +80,7 @@ export type ManifestTypes = | ManifestWorkspaceAction | ManifestWorkspaceView | ManifestWorkspaceViewCollection + | ManifestModal | ManifestBase; export type ManifestStandardTypes = ManifestTypes['type']; From 2694b964d37a52701eb4b5cd03cb789d7f4da0ee Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 7 Mar 2023 19:38:56 +0100 Subject: [PATCH 014/134] move modal to libs --- .../actions/delete/delete.action.ts | 2 +- .../actions/trash/trash.action.ts | 2 +- .../{src/core => libs}/modal/index.ts | 0 .../basic/modal-layout-basic.element.ts | 0 .../basic/modal-layout-basic.stories.ts | 0 .../confirm/modal-layout-confirm.element.ts | 0 .../confirm/modal-layout-confirm.stories.ts | 0 .../modal-layout-content-picker.element.ts | 2 +- .../modal-layout-content-picker.stories.ts | 2 +- .../modal-layout-icon-picker.element.ts | 2 +- .../modal-layout-icon-picker.stories.ts | 2 +- .../modal-layout-icon-picker.test.ts | 0 .../modal-layout-link-picker.element.ts | 2 +- .../modal-layout-multi-url-picker.stories.ts | 2 +- .../modal-layout-media-picker.element.ts | 2 +- .../modal-layout-change-password.element.ts | 0 .../modal-layout-current-user.element.ts | 4 +- .../modal/layouts/modal-layout-picker-base.ts | 0 .../modal/layouts/modal-layout.element.ts | 0 .../picker-layout-section.element.ts | 0 .../picker-layout-section.test.ts | 0 .../picker-layout-user-group.element.ts | 4 +- .../picker-layout-user-group.test.ts | 0 .../picker-user/picker-layout-user.element.ts | 2 +- .../picker-user/picker-layout-user.test.ts | 0 ...ayout-property-editor-ui-picker.element.ts | 0 ...ayout-property-editor-ui-picker.stories.ts | 2 +- .../search/modal-layout-search.element.ts | 0 .../{src/core => libs}/modal/modal-handler.ts | 0 .../{src/core => libs}/modal/modal.context.ts | 2 +- .../core => libs}/modal/stories/modal.mdx | 0 .../modal/stories/modal.stories.ts | 0 .../story-modal-service-example.element.ts | 0 .../src/backoffice/backoffice.element.ts | 2 +- .../dashboard-redirect-management.element.ts | 2 +- .../document-type-workspace.element.ts | 2 +- .../entity-bulk-actions/move/move.action.ts | 2 +- .../entity-bulk-actions/trash/trash.action.ts | 2 +- .../packages-created-overview.element.ts | 2 +- ...lled-packages-section-view-item.element.ts | 2 +- .../search/umb-search-header-app.element.ts | 2 +- .../modal-views/fields-settings.element.ts | 2 +- .../modal-views/fields-viewer.element.ts | 3 +- .../views/section-view-examine-indexers.ts | 2 +- .../views/section-view-examine-searchers.ts | 2 +- .../dashboard-published-status.element.ts | 2 +- .../data-type-workspace-view-edit.element.ts | 2 +- .../extension-root-workspace.element.ts | 2 +- .../language-picker-modal-layout.element.ts | 2 +- .../backoffice-modal-container.element.ts | 2 +- .../shared/components/debug/debug.element.ts | 2 +- .../input-document-picker.element.ts | 2 +- .../input-language-picker.element.ts | 2 +- .../input-list-base/input-list-base.ts | 10 +-- .../input-media-picker.element.ts | 2 +- .../input-multi-url-picker.element.ts | 2 +- ...perty-editor-ui-document-picker.stories.ts | 2 +- .../property-editor-ui-icon-picker.element.ts | 2 +- .../property-editor-ui-icon-picker.stories.ts | 2 +- ...input-multiple-text-string-item.element.ts | 2 +- ...ashboard-translation-dictionary.element.ts | 2 +- .../create-dictionary-modal-layout.element.ts | 66 +++++++++---------- .../entity-actions/create/create.action.ts | 2 +- .../export-dictionary-modal-layout.element.ts | 2 +- .../entity-actions/export/export.action.ts | 2 +- .../import-dictionary-modal-layout.element.ts | 9 ++- .../entity-actions/import/import.action.ts | 2 +- .../current-user-header-app.element.ts | 2 +- .../workspace-view-users-create.element.ts | 2 +- .../workspace-view-users-invite.element.ts | 2 +- .../workspace-view-users-overview.element.ts | 2 +- .../users/workspace/user-workspace.element.ts | 2 +- src/Umbraco.Web.UI.Client/tsconfig.json | 2 +- 73 files changed, 98 insertions(+), 94 deletions(-) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/index.ts (100%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/basic/modal-layout-basic.element.ts (100%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/basic/modal-layout-basic.stories.ts (100%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/confirm/modal-layout-confirm.element.ts (100%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/confirm/modal-layout-confirm.stories.ts (100%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/content-picker/modal-layout-content-picker.element.ts (96%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/content-picker/modal-layout-content-picker.stories.ts (90%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/icon-picker/modal-layout-icon-picker.element.ts (98%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/icon-picker/modal-layout-icon-picker.stories.ts (90%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/icon-picker/modal-layout-icon-picker.test.ts (100%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/link-picker/modal-layout-link-picker.element.ts (98%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/link-picker/modal-layout-multi-url-picker.stories.ts (88%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/media-picker/modal-layout-media-picker.element.ts (96%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/modal-layout-change-password.element.ts (100%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/modal-layout-current-user.element.ts (97%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/modal-layout-picker-base.ts (100%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/modal-layout.element.ts (100%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/picker-section/picker-layout-section.element.ts (100%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/picker-section/picker-layout-section.test.ts (100%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/picker-user-group/picker-layout-user-group.element.ts (95%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/picker-user-group/picker-layout-user-group.test.ts (100%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/picker-user/picker-layout-user.element.ts (98%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/picker-user/picker-layout-user.test.ts (100%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element.ts (100%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.stories.ts (89%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/layouts/search/modal-layout-search.element.ts (100%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/modal-handler.ts (100%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/modal.context.ts (98%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/stories/modal.mdx (100%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/stories/modal.stories.ts (100%) rename src/Umbraco.Web.UI.Client/{src/core => libs}/modal/stories/story-modal-service-example.element.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts index bba0636c12..54ce0c66a7 100644 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts +++ b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts @@ -1,7 +1,7 @@ import { UmbEntityActionBase } from '@umbraco-cms/entity-action'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; export class UmbDeleteEntityAction< T extends { delete(unique: string): Promise; requestItems(uniques: Array): any } diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts index a72b543ac8..f6b496dada 100644 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts +++ b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts @@ -1,7 +1,7 @@ import { UmbEntityActionBase } from '@umbraco-cms/entity-action'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; export class UmbTrashEntityAction< T extends { trash(unique: Array): Promise; requestTreeItems(uniques: Array): any } diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/index.ts b/src/Umbraco.Web.UI.Client/libs/modal/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/core/modal/index.ts rename to src/Umbraco.Web.UI.Client/libs/modal/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/basic/modal-layout-basic.element.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/basic/modal-layout-basic.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/basic/modal-layout-basic.element.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/basic/modal-layout-basic.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/basic/modal-layout-basic.stories.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/basic/modal-layout-basic.stories.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/basic/modal-layout-basic.stories.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/basic/modal-layout-basic.stories.ts diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/confirm/modal-layout-confirm.element.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/confirm/modal-layout-confirm.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/confirm/modal-layout-confirm.element.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/confirm/modal-layout-confirm.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/confirm/modal-layout-confirm.stories.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/confirm/modal-layout-confirm.stories.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/confirm/modal-layout-confirm.stories.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/confirm/modal-layout-confirm.stories.ts diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/content-picker/modal-layout-content-picker.element.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/content-picker/modal-layout-content-picker.element.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/content-picker/modal-layout-content-picker.element.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/content-picker/modal-layout-content-picker.element.ts index cc00f957aa..920bc61aad 100644 --- a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/content-picker/modal-layout-content-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/layouts/content-picker/modal-layout-content-picker.element.ts @@ -8,7 +8,7 @@ export interface UmbModalContentPickerData { selection?: Array; } -import { UmbTreeElement } from '../../../../backoffice/shared/components/tree/tree.element'; +import { UmbTreeElement } from '../../../../src/backoffice/shared/components/tree/tree.element'; // TODO: make use of UmbPickerLayoutBase @customElement('umb-modal-layout-content-picker') diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/content-picker/modal-layout-content-picker.stories.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/content-picker/modal-layout-content-picker.stories.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/content-picker/modal-layout-content-picker.stories.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/content-picker/modal-layout-content-picker.stories.ts index 632d63f007..9c8480da88 100644 --- a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/content-picker/modal-layout-content-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/layouts/content-picker/modal-layout-content-picker.stories.ts @@ -1,4 +1,4 @@ -import '../../../../backoffice/shared/components/body-layout/body-layout.element'; +import '../../../../src/backoffice/shared/components/body-layout/body-layout.element'; import './modal-layout-content-picker.element'; import { Meta, Story } from '@storybook/web-components'; diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/icon-picker/modal-layout-icon-picker.element.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/icon-picker/modal-layout-icon-picker.element.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/icon-picker/modal-layout-icon-picker.element.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/icon-picker/modal-layout-icon-picker.element.ts index 1fbfcfba62..7643360961 100644 --- a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/icon-picker/modal-layout-icon-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/layouts/icon-picker/modal-layout-icon-picker.element.ts @@ -6,7 +6,7 @@ import { customElement, property, state } from 'lit/decorators.js'; import { styleMap } from 'lit/directives/style-map.js'; import { UmbModalLayoutElement } from '../modal-layout.element'; -import icons from '../../../../../public-assets/icons/icons.json'; +import icons from '../../../../public-assets/icons/icons.json'; export interface UmbModalIconPickerData { multiple: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/icon-picker/modal-layout-icon-picker.stories.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/icon-picker/modal-layout-icon-picker.stories.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/icon-picker/modal-layout-icon-picker.stories.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/icon-picker/modal-layout-icon-picker.stories.ts index b36e9f04aa..4e86e5e9c3 100644 --- a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/icon-picker/modal-layout-icon-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/layouts/icon-picker/modal-layout-icon-picker.stories.ts @@ -1,4 +1,4 @@ -import '../../../../backoffice/shared/components/body-layout/body-layout.element'; +import '../../../../src/backoffice/shared/components/body-layout/body-layout.element'; import './modal-layout-icon-picker.element'; import { Meta, Story } from '@storybook/web-components'; diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/icon-picker/modal-layout-icon-picker.test.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/icon-picker/modal-layout-icon-picker.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/icon-picker/modal-layout-icon-picker.test.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/icon-picker/modal-layout-icon-picker.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/link-picker/modal-layout-link-picker.element.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/link-picker/modal-layout-link-picker.element.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/link-picker/modal-layout-link-picker.element.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/link-picker/modal-layout-link-picker.element.ts index a67c8fd4d6..45b4215e6c 100644 --- a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/link-picker/modal-layout-link-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/layouts/link-picker/modal-layout-link-picker.element.ts @@ -4,7 +4,7 @@ import { customElement, query, state } from 'lit/decorators.js'; import { UUIBooleanInputEvent, UUIInputElement } from '@umbraco-ui/uui'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; import { UmbModalLayoutElement } from '../modal-layout.element'; -import { UmbTreeElement } from '../../../../backoffice/shared/components/tree/tree.element'; +import { UmbTreeElement } from '../../../../src/backoffice/shared/components/tree/tree.element'; import { buildUdi, getKeyFromUdi } from '@umbraco-cms/utils'; export interface UmbModalLinkPickerData { diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/link-picker/modal-layout-multi-url-picker.stories.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/link-picker/modal-layout-multi-url-picker.stories.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/link-picker/modal-layout-multi-url-picker.stories.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/link-picker/modal-layout-multi-url-picker.stories.ts index 6f9b80f05f..67a5448760 100644 --- a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/link-picker/modal-layout-multi-url-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/layouts/link-picker/modal-layout-multi-url-picker.stories.ts @@ -1,4 +1,4 @@ -import '../../../../backoffice/shared/components/body-layout/body-layout.element'; +import '../../../../src/backoffice/shared/components/body-layout/body-layout.element'; import './modal-layout-link-picker.element'; import { Meta, Story } from '@storybook/web-components'; diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/media-picker/modal-layout-media-picker.element.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/media-picker/modal-layout-media-picker.element.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/media-picker/modal-layout-media-picker.element.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/media-picker/modal-layout-media-picker.element.ts index 15f5d39ada..354061a302 100644 --- a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/media-picker/modal-layout-media-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/layouts/media-picker/modal-layout-media-picker.element.ts @@ -8,7 +8,7 @@ export interface UmbModalMediaPickerData { selection: Array; } -import { UmbTreeElement } from '../../../../backoffice/shared/components/tree/tree.element'; +import { UmbTreeElement } from '../../../../src/backoffice/shared/components/tree/tree.element'; @customElement('umb-modal-layout-media-picker') export class UmbModalLayoutMediaPickerElement extends UmbModalLayoutElement { diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/modal-layout-change-password.element.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-change-password.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/modal-layout-change-password.element.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-change-password.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/modal-layout-current-user.element.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-current-user.element.ts similarity index 97% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/modal-layout-current-user.element.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-current-user.element.ts index e8bafe3cb1..15e80e6cbd 100644 --- a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/modal-layout-current-user.element.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-current-user.element.ts @@ -6,11 +6,11 @@ import { UmbCurrentUserHistoryStore, UmbCurrentUserHistoryItem, UMB_CURRENT_USER_HISTORY_STORE_CONTEXT_TOKEN, -} from '../../../backoffice/users/current-user/current-user-history.store'; +} from '../../../src/backoffice/users/current-user/current-user-history.store'; import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN, -} from '../../../backoffice/users/current-user/current-user.store'; +} from '../../../src/backoffice/users/current-user/current-user.store'; import type { UserDetails } from '@umbraco-cms/models'; import { UmbLitElement } from '@umbraco-cms/element'; diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/modal-layout-picker-base.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-picker-base.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/modal-layout-picker-base.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-picker-base.ts diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/modal-layout.element.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/modal-layout.element.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/picker-section/picker-layout-section.element.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-section/picker-layout-section.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/picker-section/picker-layout-section.element.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-section/picker-layout-section.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/picker-section/picker-layout-section.test.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-section/picker-layout-section.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/picker-section/picker-layout-section.test.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-section/picker-layout-section.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/picker-user-group/picker-layout-user-group.element.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-user-group/picker-layout-user-group.element.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/picker-user-group/picker-layout-user-group.element.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-user-group/picker-layout-user-group.element.ts index 9d103d4d19..22a3dd7b4e 100644 --- a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/picker-user-group/picker-layout-user-group.element.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-user-group/picker-layout-user-group.element.ts @@ -2,8 +2,8 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; import { UmbModalLayoutPickerBase } from '../modal-layout-picker-base'; -import { UMB_USER_GROUP_STORE_CONTEXT_TOKEN } from '../../../../backoffice/users/user-groups/user-group.store'; -import type { UmbUserGroupStore } from '../../../../backoffice/users/user-groups/user-group.store'; +import { UMB_USER_GROUP_STORE_CONTEXT_TOKEN } from '../../../../src/backoffice/users/user-groups/user-group.store'; +import type { UmbUserGroupStore } from '../../../../src/backoffice/users/user-groups/user-group.store'; import type { UserGroupDetails } from '@umbraco-cms/models'; @customElement('umb-picker-layout-user-group') diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/picker-user-group/picker-layout-user-group.test.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-user-group/picker-layout-user-group.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/picker-user-group/picker-layout-user-group.test.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-user-group/picker-layout-user-group.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/picker-user/picker-layout-user.element.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-user/picker-layout-user.element.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/picker-user/picker-layout-user.element.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-user/picker-layout-user.element.ts index b2c0ddbb56..144576a292 100644 --- a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/picker-user/picker-layout-user.element.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-user/picker-layout-user.element.ts @@ -2,7 +2,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; import { UmbModalLayoutPickerBase } from '../modal-layout-picker-base'; -import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../../../backoffice/users/users/user.store'; +import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../../../src/backoffice/users/users/user.store'; import type { UserDetails } from '@umbraco-cms/models'; @customElement('umb-picker-layout-user') diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/picker-user/picker-layout-user.test.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-user/picker-layout-user.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/picker-user/picker-layout-user.test.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-user/picker-layout-user.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.stories.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.stories.ts similarity index 89% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.stories.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.stories.ts index 917bce04dc..f6c428375f 100644 --- a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.stories.ts @@ -6,7 +6,7 @@ import type { } from './modal-layout-property-editor-ui-picker.element'; import './modal-layout-property-editor-ui-picker.element'; -import '../../../../backoffice/shared/components/body-layout/body-layout.element'; +import '../../../../src/backoffice/shared/components/body-layout/body-layout.element'; export default { title: 'API/Modals/Layouts/Property Editor UI Picker', diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/search/modal-layout-search.element.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/search/modal-layout-search.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/search/modal-layout-search.element.ts rename to src/Umbraco.Web.UI.Client/libs/modal/layouts/search/modal-layout-search.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/modal-handler.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/core/modal/modal-handler.ts rename to src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/src/core/modal/modal.context.ts rename to src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 1bf8696341..9672e0a38f 100644 --- a/src/Umbraco.Web.UI.Client/src/core/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -5,7 +5,7 @@ import './layouts/media-picker/modal-layout-media-picker.element'; import './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import './layouts/modal-layout-current-user.element'; import './layouts/icon-picker/modal-layout-icon-picker.element'; -import '../../backoffice/settings/languages/language-picker/language-picker-modal-layout.element'; +import '../../src/backoffice/settings/languages/language-picker/language-picker-modal-layout.element'; import './layouts/link-picker/modal-layout-link-picker.element'; import './layouts/basic/modal-layout-basic.element'; import './layouts/search/modal-layout-search.element.ts'; diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/stories/modal.mdx b/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.mdx similarity index 100% rename from src/Umbraco.Web.UI.Client/src/core/modal/stories/modal.mdx rename to src/Umbraco.Web.UI.Client/libs/modal/stories/modal.mdx diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/stories/modal.stories.ts b/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.stories.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/core/modal/stories/modal.stories.ts rename to src/Umbraco.Web.UI.Client/libs/modal/stories/modal.stories.ts diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/stories/story-modal-service-example.element.ts b/src/Umbraco.Web.UI.Client/libs/modal/stories/story-modal-service-example.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/core/modal/stories/story-modal-service-example.element.ts rename to src/Umbraco.Web.UI.Client/libs/modal/stories/story-modal-service-example.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/backoffice.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/backoffice.element.ts index cee5fd1db9..26d669bebd 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/backoffice.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/backoffice.element.ts @@ -2,7 +2,7 @@ import { defineElement } from '@umbraco-ui/uui-base/lib/registration'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html } from 'lit'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../core/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../libs/modal'; import { UmbUserStore } from './users/users/user.store'; import { UmbUserGroupStore } from './users/user-groups/user-group.store'; import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN } from './users/current-user/current-user.store'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts index e18076cf58..d7c9d2089b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts @@ -2,7 +2,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html, nothing } from 'lit'; import { customElement, state, query, property } from 'lit/decorators.js'; import { UUIButtonState, UUIPaginationElement, UUIPaginationEvent } from '@umbraco-ui/uui'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../core/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../libs/modal'; import { UmbLitElement } from '@umbraco-cms/element'; import { RedirectManagementResource, RedirectStatusModel, RedirectUrlModel } from '@umbraco-cms/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.element.ts index fd5c9537ea..e3881a8b96 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.element.ts @@ -6,7 +6,7 @@ import type { UmbWorkspaceEntityElement } from '../../../shared/components/works import { UmbWorkspaceDocumentTypeContext } from './document-type-workspace.context'; import type { DocumentTypeModel } from '@umbraco-cms/backend-api'; import { UmbLitElement } from '@umbraco-cms/element'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; @customElement('umb-document-type-workspace') export class UmbDocumentTypeWorkspaceElement extends UmbLitElement implements UmbWorkspaceEntityElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/move/move.action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/move/move.action.ts index 30ae1aeac3..fc474fba0e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/move/move.action.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/move/move.action.ts @@ -2,7 +2,7 @@ import type { UmbMediaRepository } from '../../repository/media.repository'; import { UmbEntityBulkActionBase } from '@umbraco-cms/entity-action'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; export class UmbMediaMoveEntityBulkAction extends UmbEntityBulkActionBase { #modalContext?: UmbModalContext; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/trash/trash.action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/trash/trash.action.ts index 672bcc49b8..8865f1dc4d 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/trash/trash.action.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/trash/trash.action.ts @@ -3,7 +3,7 @@ import type { UmbMediaRepository } from '../../repository/media.repository'; import { UmbEntityBulkActionBase } from '@umbraco-cms/entity-action'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; export class UmbMediaTrashEntityBulkAction extends UmbEntityBulkActionBase { #modalContext?: UmbModalContext; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/created/packages-created-overview.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/created/packages-created-overview.element.ts index 20b33ad3f8..e0096d7834 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/created/packages-created-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/created/packages-created-overview.element.ts @@ -6,7 +6,7 @@ import { UUIPaginationEvent } from '@umbraco-ui/uui'; import { PackageDefinitionModel, PackageResource } from '@umbraco-cms/backend-api'; import { UmbLitElement } from '@umbraco-cms/element'; import { tryExecuteAndNotify } from '@umbraco-cms/resources'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; @customElement('umb-packages-created-overview') export class UmbPackagesCreatedOverviewElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts index 3df5afd999..3bad31e995 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts @@ -4,7 +4,7 @@ import { customElement, property, state } from 'lit/decorators.js'; import { firstValueFrom, map } from 'rxjs'; import { UUIButtonState } from '@umbraco-ui/uui'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../core/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../../libs/modal'; import { createExtensionElement, umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; import type { ManifestPackageView } from '@umbraco-cms/models'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/search/umb-search-header-app.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/search/umb-search-header-app.element.ts index 64a53e5e3b..3e2964f415 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/search/umb-search-header-app.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/search/umb-search-header-app.element.ts @@ -1,7 +1,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, CSSResultGroup, html } from 'lit'; import { customElement } from 'lit/decorators.js'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; import { UmbLitElement } from '@umbraco-cms/element'; @customElement('umb-search-header-app') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-settings.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-settings.element.ts index ce43b2b8cd..63d0b916ed 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-settings.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-settings.element.ts @@ -1,7 +1,7 @@ import { html, css } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, state } from 'lit/decorators.js'; -import { UmbModalLayoutElement } from '../../../../../../core/modal'; +import { UmbModalLayoutElement } from '../../../../../../../libs/modal'; export interface UmbModalFieldsSettingsData { name: string; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-viewer.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-viewer.element.ts index e55b6b4b22..fee68a89cc 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-viewer.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-viewer.element.ts @@ -1,7 +1,7 @@ import { html, css, nothing } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement } from 'lit/decorators.js'; -import { UmbModalLayoutElement } from '../../../../../../core/modal'; +import { UmbModalLayoutElement } from '../../../../../../../libs/modal'; import type { SearchResultModel } from '@umbraco-cms/backend-api'; @customElement('umb-modal-layout-fields-viewer') @@ -16,7 +16,6 @@ export class UmbModalLayoutFieldsViewerElement extends UmbModalLayoutElement + parentName: Observable; } export interface UmbCreateDictionaryModalResultData { @@ -21,15 +21,15 @@ export class UmbCreateDictionaryModalLayoutElement extends UmbModalLayoutElement @query('#form') private _form!: HTMLFormElement; - #parentName?: string; + #parentName?: string; - connectedCallback() { - super.connectedCallback(); + connectedCallback() { + super.connectedCallback(); - if (this.data?.parentName) { - this.observe(this.data.parentName, (value) => this.#parentName = value); - } - } + if (this.data?.parentName) { + this.observe(this.data.parentName, (value) => (this.#parentName = value)); + } + } #handleCancel() { this.modalHandler?.close({}); @@ -47,33 +47,33 @@ export class UmbCreateDictionaryModalLayoutElement extends UmbModalLayoutElement const formData = new FormData(form); - this.modalHandler?.close({ + this.modalHandler?.close({ name: formData.get('name') as string, - }); + }); } render() { - return html` - ${when(this.#parentName, () => html`

Create a dictionary item under ${this.#parentName}

`)} - -
- - Name -
- -
-
-
-
- - -
`; + return html` + ${when(this.#parentName, () => html`

Create a dictionary item under ${this.#parentName}

`)} + +
+ + Name +
+ +
+
+
+
+ + +
`; } } @@ -81,4 +81,4 @@ declare global { interface HTMLElementTagNameMap { 'umb-create-dictionary-modal-layout': UmbCreateDictionaryModalLayoutElement; } -} \ No newline at end of file +} diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create.action.ts index 2560f5b2ea..0be665ac9e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create.action.ts @@ -8,7 +8,7 @@ import type { UmbCreateDictionaryModalResultData } from './create-dictionary-mod import { UmbEntityActionBase } from '@umbraco-cms/entity-action'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; // TODO: temp import import './create-dictionary-modal-layout.element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export-dictionary-modal-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export-dictionary-modal-layout.element.ts index 690cea3993..9906f3e5af 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export-dictionary-modal-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export-dictionary-modal-layout.element.ts @@ -1,7 +1,7 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, query } from 'lit/decorators.js'; -import { UmbModalLayoutElement } from '@umbraco-cms/modal'; +import { UmbModalLayoutElement } from 'libs/modal'; export interface UmbExportDictionaryModalData { unique: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export.action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export.action.ts index 8b50b1b2a9..a6d153b2c5 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export.action.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export.action.ts @@ -4,7 +4,7 @@ import type { UmbExportDictionaryModalResultData } from './export-dictionary-mod import { UmbEntityActionBase } from '@umbraco-cms/entity-action'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; import './export-dictionary-modal-layout.element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import-dictionary-modal-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import-dictionary-modal-layout.element.ts index a2fe92a240..4d02ef2676 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import-dictionary-modal-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import-dictionary-modal-layout.element.ts @@ -6,7 +6,7 @@ import { repeat } from 'lit/directives/repeat.js'; import { UmbTreeElement } from '../../../../shared/components/tree/tree.element'; import { UmbDictionaryRepository } from '../../repository/dictionary.repository'; import { DictionaryUploadModel } from '@umbraco-cms/backend-api'; -import { UmbModalLayoutElement } from '@umbraco-cms/modal'; +import { UmbModalLayoutElement } from 'libs/modal'; export interface UmbImportDictionaryModalData { unique: string | null; @@ -138,7 +138,12 @@ export class UmbImportDictionaryModalLayoutElement extends UmbModalLayoutElement selectable> - + `; } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import.action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import.action.ts index 98a14e6e9e..219d2db945 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import.action.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import.action.ts @@ -4,7 +4,7 @@ import type { UmbImportDictionaryModalResultData } from './import-dictionary-mod import { UmbEntityActionBase } from '@umbraco-cms/entity-action'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; import './import-dictionary-modal-layout.element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/current-user-header-app.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/current-user-header-app.element.ts index 1f8451c341..1d98a94381 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/current-user-header-app.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/current-user-header-app.element.ts @@ -3,7 +3,7 @@ import { css, CSSResultGroup, html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN } from './current-user.store'; import type { UserDetails } from '@umbraco-cms/models'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; import { UmbLitElement } from '@umbraco-cms/element'; @customElement('umb-current-user-header-app') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-create.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-create.element.ts index d5aa8702e4..06a866c263 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-create.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-create.element.ts @@ -3,7 +3,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, query, state } from 'lit/decorators.js'; import { UUIInputPasswordElement } from '@umbraco-ui/uui'; import { UmbInputPickerUserGroupElement } from '../../../../shared/components/input-user-group/input-user-group.element'; -import { UmbModalLayoutElement } from '../../../../../core/modal'; +import { UmbModalLayoutElement } from '../../../../../../libs/modal'; import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../../users/user.store'; import type { UserDetails } from '@umbraco-cms/models'; import { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-invite.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-invite.element.ts index 6a5e16aca7..c964691ea4 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-invite.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-invite.element.ts @@ -2,7 +2,7 @@ import { css, html, nothing } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, query, state } from 'lit/decorators.js'; import { UmbInputPickerUserGroupElement } from '../../../../shared/components/input-user-group/input-user-group.element'; -import { UmbModalLayoutElement } from '../../../../../core/modal'; +import { UmbModalLayoutElement } from '../../../../../../libs/modal'; import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../../users/user.store'; import type { UserDetails } from '@umbraco-cms/models'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-overview.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-overview.element.ts index 1b38d55de7..0cbba67347 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-overview.element.ts @@ -6,7 +6,7 @@ import { UUIPopoverElement } from '@umbraco-ui/uui'; import type { UmbSectionViewUsersElement } from './section-view-users.element'; import { UmbLitElement } from '@umbraco-cms/element'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'src/core/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; import './list-view-layouts/table/workspace-view-users-table.element'; import './list-view-layouts/grid/workspace-view-users-grid.element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/workspace/user-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/workspace/user-workspace.element.ts index 928c6516a4..e3c4234c30 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/workspace/user-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/workspace/user-workspace.element.ts @@ -8,7 +8,7 @@ import { repeat } from 'lit/directives/repeat.js'; import { distinctUntilChanged } from 'rxjs'; import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN } from '../../current-user/current-user.store'; -import type { UmbModalContext } from '../../../../core/modal'; +import type { UmbModalContext } from '../../../../../libs/modal'; import type { UmbWorkspaceEntityElement } from '../../../shared/components/workspace/workspace-entity-element.interface'; import { UmbWorkspaceUserContext } from './user-workspace.context'; import { getLookAndColorFromUserStatus } from '@umbraco-cms/utils'; diff --git a/src/Umbraco.Web.UI.Client/tsconfig.json b/src/Umbraco.Web.UI.Client/tsconfig.json index 1e55e986af..42a4db4b11 100644 --- a/src/Umbraco.Web.UI.Client/tsconfig.json +++ b/src/Umbraco.Web.UI.Client/tsconfig.json @@ -21,7 +21,7 @@ "baseUrl": ".", "paths": { "@umbraco-cms/css": ["libs/css/custom-properties.css"], - "@umbraco-cms/modal": ["src/core/modal"], + "@umbraco-cms/modal": ["libs/modal"], "@umbraco-cms/models": ["libs/models"], "@umbraco-cms/backend-api": ["libs/backend-api"], "@umbraco-cms/context-api": ["libs/context-api"], From ac76b12e22d962c0c0837bcf5015dfc6b734cf4d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 7 Mar 2023 19:48:56 +0100 Subject: [PATCH 015/134] move content picker into documents --- src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts | 4 ++-- .../content-picker/modal-layout-content-picker.element.ts | 4 ++-- .../content-picker/modal-layout-content-picker.stories.ts | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts => src/backoffice/documents/documents/modals}/content-picker/modal-layout-content-picker.element.ts (92%) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts => src/backoffice/documents/documents/modals}/content-picker/modal-layout-content-picker.stories.ts (90%) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 9672e0a38f..6798c9ad72 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -1,6 +1,6 @@ // TODO: lazy load import './layouts/confirm/modal-layout-confirm.element'; -import './layouts/content-picker/modal-layout-content-picker.element'; +import '../../src/backoffice/documents/documents/modals/content-picker/modal-layout-content-picker.element'; import './layouts/media-picker/modal-layout-media-picker.element'; import './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import './layouts/modal-layout-current-user.element'; @@ -16,7 +16,7 @@ import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; import { UmbModalChangePasswordData } from './layouts/modal-layout-change-password.element'; import type { UmbModalIconPickerData } from './layouts/icon-picker/modal-layout-icon-picker.element'; import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; -import type { UmbModalContentPickerData } from './layouts/content-picker/modal-layout-content-picker.element'; +import type { UmbModalContentPickerData } from '../../src/backoffice/documents/documents/modals/content-picker/modal-layout-content-picker.element'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import type { UmbModalMediaPickerData } from './layouts/media-picker/modal-layout-media-picker.element'; import type { UmbModalLinkPickerData } from './layouts/link-picker/modal-layout-link-picker.element'; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/content-picker/modal-layout-content-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/modal-layout-content-picker.element.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/content-picker/modal-layout-content-picker.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/modal-layout-content-picker.element.ts index 920bc61aad..fcf39bb5ae 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/content-picker/modal-layout-content-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/modal-layout-content-picker.element.ts @@ -1,14 +1,14 @@ import { css, html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, state } from 'lit/decorators.js'; -import { UmbModalLayoutElement } from '../modal-layout.element'; +import { UmbModalLayoutElement } from '../../../../../../libs/modal/layouts/modal-layout.element'; export interface UmbModalContentPickerData { multiple?: boolean; selection?: Array; } -import { UmbTreeElement } from '../../../../src/backoffice/shared/components/tree/tree.element'; +import { UmbTreeElement } from '../../../../shared/components/tree/tree.element'; // TODO: make use of UmbPickerLayoutBase @customElement('umb-modal-layout-content-picker') diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/content-picker/modal-layout-content-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/modal-layout-content-picker.stories.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/content-picker/modal-layout-content-picker.stories.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/modal-layout-content-picker.stories.ts index 9c8480da88..e6d82234bc 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/content-picker/modal-layout-content-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/modal-layout-content-picker.stories.ts @@ -1,4 +1,4 @@ -import '../../../../src/backoffice/shared/components/body-layout/body-layout.element'; +import '../../../../shared/components/body-layout/body-layout.element'; import './modal-layout-content-picker.element'; import { Meta, Story } from '@storybook/web-components'; From a5169bc7ea4b1852ed24b3f47900370b736797a3 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 7 Mar 2023 19:49:48 +0100 Subject: [PATCH 016/134] rename content picker files --- src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts | 4 ++-- ...-picker.element.ts => document-picker-modal.element.ts} | 0 ...-picker.stories.ts => document-picker-modal.stories.ts} | 7 ++----- 3 files changed, 4 insertions(+), 7 deletions(-) rename src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/{modal-layout-content-picker.element.ts => document-picker-modal.element.ts} (100%) rename src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/{modal-layout-content-picker.stories.ts => document-picker-modal.stories.ts} (80%) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 6798c9ad72..90880afe12 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -1,6 +1,6 @@ // TODO: lazy load import './layouts/confirm/modal-layout-confirm.element'; -import '../../src/backoffice/documents/documents/modals/content-picker/modal-layout-content-picker.element'; +import '../../src/backoffice/documents/documents/modals/content-picker/document-picker-modal.element'; import './layouts/media-picker/modal-layout-media-picker.element'; import './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import './layouts/modal-layout-current-user.element'; @@ -16,7 +16,7 @@ import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; import { UmbModalChangePasswordData } from './layouts/modal-layout-change-password.element'; import type { UmbModalIconPickerData } from './layouts/icon-picker/modal-layout-icon-picker.element'; import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; -import type { UmbModalContentPickerData } from '../../src/backoffice/documents/documents/modals/content-picker/modal-layout-content-picker.element'; +import type { UmbModalContentPickerData } from '../../src/backoffice/documents/documents/modals/content-picker/document-picker-modal.element'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import type { UmbModalMediaPickerData } from './layouts/media-picker/modal-layout-media-picker.element'; import type { UmbModalLinkPickerData } from './layouts/link-picker/modal-layout-link-picker.element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/modal-layout-content-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/document-picker-modal.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/modal-layout-content-picker.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/document-picker-modal.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/modal-layout-content-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/document-picker-modal.stories.ts similarity index 80% rename from src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/modal-layout-content-picker.stories.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/document-picker-modal.stories.ts index e6d82234bc..a16c8f621a 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/modal-layout-content-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/document-picker-modal.stories.ts @@ -1,13 +1,10 @@ import '../../../../shared/components/body-layout/body-layout.element'; -import './modal-layout-content-picker.element'; +import './document-picker-modal.element'; import { Meta, Story } from '@storybook/web-components'; import { html } from 'lit'; -import type { - UmbModalLayoutContentPickerElement, - UmbModalContentPickerData, -} from './modal-layout-content-picker.element'; +import type { UmbModalLayoutContentPickerElement, UmbModalContentPickerData } from './document-picker-modal.element'; export default { title: 'API/Modals/Layouts/Content Picker', From ec600ccb39f26fbc65c5589d29393e4469f9b687 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 7 Mar 2023 19:50:25 +0100 Subject: [PATCH 017/134] rename content picker folder --- src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts | 4 ++-- .../document-picker-modal.element.ts | 0 .../document-picker-modal.stories.ts | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/{content-picker => document-picker}/document-picker-modal.element.ts (100%) rename src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/{content-picker => document-picker}/document-picker-modal.stories.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 90880afe12..235cd84207 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -1,6 +1,6 @@ // TODO: lazy load import './layouts/confirm/modal-layout-confirm.element'; -import '../../src/backoffice/documents/documents/modals/content-picker/document-picker-modal.element'; +import '../../src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element'; import './layouts/media-picker/modal-layout-media-picker.element'; import './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import './layouts/modal-layout-current-user.element'; @@ -16,7 +16,7 @@ import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; import { UmbModalChangePasswordData } from './layouts/modal-layout-change-password.element'; import type { UmbModalIconPickerData } from './layouts/icon-picker/modal-layout-icon-picker.element'; import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; -import type { UmbModalContentPickerData } from '../../src/backoffice/documents/documents/modals/content-picker/document-picker-modal.element'; +import type { UmbModalContentPickerData } from '../../src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import type { UmbModalMediaPickerData } from './layouts/media-picker/modal-layout-media-picker.element'; import type { UmbModalLinkPickerData } from './layouts/link-picker/modal-layout-link-picker.element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/document-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/document-picker-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/document-picker-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.stories.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/content-picker/document-picker-modal.stories.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.stories.ts From 8e31458c4bee1126226fb428c5597eda81f558f2 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 7 Mar 2023 19:54:46 +0100 Subject: [PATCH 018/134] rename content picker class and element to document picker + remove layout in name --- src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts | 4 ++-- .../stories/story-modal-service-example.element.ts | 2 +- .../document-picker/document-picker-modal.element.ts | 11 ++++++----- .../document-picker/document-picker-modal.stories.ts | 10 +++++----- .../input-document-picker.element.ts | 2 +- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 235cd84207..3af76a818f 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -59,8 +59,8 @@ export class UmbModalContext { * @return {*} {UmbModalHandler} * @memberof UmbModalContext */ - public contentPicker(data?: UmbModalContentPickerData): UmbModalHandler { - return this.open('umb-modal-layout-content-picker', { data, type: 'sidebar', size: 'small' }); + public documentPicker(data?: UmbModalContentPickerData): UmbModalHandler { + return this.open('umb-document-picker-modal', { data, type: 'sidebar', size: 'small' }); } /** diff --git a/src/Umbraco.Web.UI.Client/libs/modal/stories/story-modal-service-example.element.ts b/src/Umbraco.Web.UI.Client/libs/modal/stories/story-modal-service-example.element.ts index bd33181774..f51cc533be 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/stories/story-modal-service-example.element.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/stories/story-modal-service-example.element.ts @@ -23,7 +23,7 @@ export class StoryModalContextExampleElement extends UmbLitElement { private _open() { switch (this.modalLayout) { case 'Content Picker': - this._modalContext?.contentPicker(); + this._modalContext?.documentPicker(); break; case 'Property Editor UI Picker': this._modalContext?.propertyEditorUIPicker(); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element.ts index fcf39bb5ae..96a54a54b1 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element.ts @@ -2,17 +2,16 @@ import { css, html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, state } from 'lit/decorators.js'; import { UmbModalLayoutElement } from '../../../../../../libs/modal/layouts/modal-layout.element'; +import type { UmbTreeElement } from 'src/backoffice/shared/components/tree/tree.element'; export interface UmbModalContentPickerData { multiple?: boolean; selection?: Array; } -import { UmbTreeElement } from '../../../../shared/components/tree/tree.element'; - // TODO: make use of UmbPickerLayoutBase -@customElement('umb-modal-layout-content-picker') -export class UmbModalLayoutContentPickerElement extends UmbModalLayoutElement { +@customElement('umb-document-picker-modal') +export class UmbDocumentPickerModalElement extends UmbModalLayoutElement { static styles = [ UUITextStyles, css` @@ -96,8 +95,10 @@ export class UmbModalLayoutContentPickerElement extends UmbModalLayoutElement = () => html` +export const Overview: Story = () => html` - + `; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts index 3af84bf4e8..53ad1efa0e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts @@ -121,7 +121,7 @@ export class UmbInputDocumentPickerElement extends FormControlMixin(UmbLitElemen private _openPicker() { // We send a shallow copy(good enough as its just an array of keys) of our this._selectedKeys, as we don't want the modal to manipulate our data: - const modalHandler = this._modalContext?.contentPicker({ + const modalHandler = this._modalContext?.documentPicker({ multiple: this.max === 1 ? false : true, selection: [...this._selectedKeys], }); From 9b416e428fad69b07fe85846cc54423a66bac021 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 7 Mar 2023 19:57:59 +0100 Subject: [PATCH 019/134] register document picker modal --- .../src/backoffice/documents/documents/manifests.ts | 2 ++ .../documents/documents/modals/manifests.ts | 11 +++++++++++ 2 files changed, 13 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/manifests.ts index b36ebb6e5b..db1abd9914 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/manifests.ts @@ -5,6 +5,7 @@ import { manifests as treeManifests } from './tree/manifests'; import { manifests as workspaceManifests } from './workspace/manifests'; import { manifests as entityActionManifests } from './entity-actions/manifests'; import { manifests as entityBulkActionManifests } from './entity-bulk-actions/manifests'; +import { manifests as modalManifests } from './modals/manifests'; export const manifests = [ ...collectionManifests, @@ -14,4 +15,5 @@ export const manifests = [ ...workspaceManifests, ...entityActionManifests, ...entityBulkActionManifests, + ...modalManifests, ]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/manifests.ts new file mode 100644 index 0000000000..d071e4021b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/manifests.ts @@ -0,0 +1,11 @@ +import type { ManifestModal } from '@umbraco-cms/extensions-registry'; + +const modals: Array = [ + { + type: 'modal', + alias: 'Umb.Modal.DocumentPicker', + name: 'Document Picker Modal', + }, +]; + +export const manifests = [...modals]; From e68ed984e7e610596d506f3bb9140c53c06243f8 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 08:28:50 +0100 Subject: [PATCH 020/134] load modal from extension registry and render in modal container --- .../libs/modal/modal-handler.ts | 59 ++++++++++++++----- .../libs/modal/modal.context.ts | 18 ++++-- .../src/backoffice/backoffice.element.ts | 2 +- .../documents/documents/modals/manifests.ts | 1 + .../backoffice-modal-container.element.ts | 2 +- .../input-document-picker.element.ts | 11 +++- 6 files changed, 66 insertions(+), 27 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts index 2c07d85451..2119157278 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts @@ -2,56 +2,63 @@ import type { UUIDialogElement } from '@umbraco-ui/uui'; import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; import type { UUIModalSidebarElement, UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; import { v4 as uuidv4 } from 'uuid'; - +import { BehaviorSubject } from 'rxjs'; import { UmbModalOptions } from './modal.context'; +import { createExtensionElement, umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; +import { UmbObserverController } from '@umbraco-cms/observable-api'; +import { UmbControllerHostInterface } from '@umbraco-cms/controller'; +import { ManifestModal } from '@umbraco-cms/extensions-registry'; //TODO consider splitting this into two separate handlers export class UmbModalHandler { private _closeResolver: any; private _closePromise: any; + #host: UmbControllerHostInterface; + + public containerElement: UUIModalDialogElement | UUIModalSidebarElement; + + #element = new BehaviorSubject(undefined); + public readonly element = this.#element.asObservable(); - public element: UUIModalDialogElement | UUIModalSidebarElement; public key: string; public type: string; public size: UUIModalSidebarSize; - constructor(element: string | HTMLElement, options?: UmbModalOptions) { + constructor(host: UmbControllerHostInterface, modalAlias: string, options?: UmbModalOptions) { + this.#host = host; this.key = uuidv4(); this.type = options?.type || 'dialog'; this.size = options?.size || 'small'; - this.element = this._createElement(element, options); // TODO: Consider if its right to use Promises, or use another event based system? Would we need to be able to cancel an event, to then prevent the closing..? this._closePromise = new Promise((resolve) => { this._closeResolver = resolve; }); + + this.containerElement = this.#createContainerElement(); + this.#observeModal(modalAlias, options?.data); } - private _createElement(element: string | HTMLElement, options?: UmbModalOptions) { - const layoutElement = this._createLayoutElement(element, options?.data); - return this.type === 'sidebar' - ? this._createSidebarElement(layoutElement) - : this._createDialogElement(layoutElement); + #createContainerElement() { + return this.type === 'sidebar' ? this.#createSidebarElement() : this.#createDialogElement(); } - private _createSidebarElement(layoutElement: HTMLElement) { + #createSidebarElement() { const sidebarElement = document.createElement('uui-modal-sidebar'); - sidebarElement.appendChild(layoutElement); sidebarElement.size = this.size; return sidebarElement; } - private _createDialogElement(layoutElement: HTMLElement) { + #createDialogElement() { const modalDialogElement = document.createElement('uui-modal-dialog'); const dialogElement: UUIDialogElement = document.createElement('uui-dialog'); modalDialogElement.appendChild(dialogElement); - dialogElement.appendChild(layoutElement); return modalDialogElement; } - private _createLayoutElement(element: string | HTMLElement, data: unknown) { - const layoutElement: any = element instanceof HTMLElement ? element : document.createElement(element); + async #createLayoutElement(manifest: ManifestModal, data: unknown) { + const layoutElement = (await createExtensionElement(manifest)) as any; layoutElement.data = data; layoutElement.modalHandler = this; return layoutElement; @@ -59,10 +66,30 @@ export class UmbModalHandler { public close(...args: any) { this._closeResolver(...args); - this.element.close(); + this.containerElement.close(); } public onClose(): Promise { return this._closePromise; } + + /* TODO: modals being part of the extension registry know means that a modal element can change over time. + It makes this code a bit more complex. The main idea is to have the element as part of the modalHandler so it is possible to dispatch events from within the modal element to the one that opened it. + Now when the element is an observable it makes it more complex because this host needs to subscribe to updates to the element, instead of just having a reference to it. + If we find a better generic solution to communicate between the modal and the host, then we can remove the element as part of the modalHandler. */ + #observeModal(modalAlias: string, data: unknown) { + new UmbObserverController( + this.#host, + umbExtensionsRegistry.getByTypeAndAlias('modal', modalAlias), + async (manifest) => { + if (manifest) { + const element = await this.#createLayoutElement(manifest, data); + this.#element.next(element); + this.containerElement.appendChild(element); + } else { + this.#element.next(undefined); + } + } + ); + } } diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 3af76a818f..a2728483f7 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -25,6 +25,7 @@ import type { UmbBasicModalData } from './layouts/basic/modal-layout-basic.eleme import { UmbPickerModalData } from './layouts/modal-layout-picker-base'; import { UmbContextToken } from '@umbraco-cms/context-api'; import { LanguageModel } from '@umbraco-cms/backend-api'; +import { UmbControllerHostInterface } from '@umbraco-cms/controller'; export type UmbModalType = 'dialog' | 'sidebar'; @@ -37,10 +38,15 @@ export interface UmbModalOptions { // TODO: we should find a way to easily open a modal without adding custom methods to this context. It would result in a better separation of concerns. // TODO: move all layouts into their correct "silo" folders. User picker should live with users etc. export class UmbModalContext { + host: UmbControllerHostInterface; // TODO: Investigate if we can get rid of HTML elements in our store, so we can use one of our states. #modals = new BehaviorSubject(>[]); public readonly modals = this.#modals.asObservable(); + constructor(host: UmbControllerHostInterface) { + this.host = host; + } + /** * Opens a Confirm modal * @public @@ -184,7 +190,7 @@ export class UmbModalContext { modalHandler.element = dialog as unknown as UUIModalDialogElement; //TODO END - modalHandler.element.addEventListener('close-end', () => this._handleCloseEnd(modalHandler)); + modalHandler.element.addEventListener('close-end', () => this.#onCloseEnd(modalHandler)); this.#modals.next([...this.#modals.getValue(), modalHandler]); return modalHandler; @@ -198,10 +204,10 @@ export class UmbModalContext { * @return {*} {UmbModalHandler} * @memberof UmbModalContext */ - public open(element: string | HTMLElement, options?: UmbModalOptions): UmbModalHandler { - const modalHandler = new UmbModalHandler(element, options); + public open(modalAlias: string, options?: UmbModalOptions): UmbModalHandler { + const modalHandler = new UmbModalHandler(this.host, modalAlias, options); - modalHandler.element.addEventListener('close-end', () => this._handleCloseEnd(modalHandler)); + modalHandler.containerElement.addEventListener('close-end', () => this.#onCloseEnd(modalHandler)); this.#modals.next([...this.#modals.getValue(), modalHandler]); return modalHandler; @@ -223,8 +229,8 @@ export class UmbModalContext { * @param {UmbModalHandler} modalHandler * @memberof UmbModalContext */ - private _handleCloseEnd(modalHandler: UmbModalHandler) { - modalHandler.element.removeEventListener('close-end', () => this._handleCloseEnd(modalHandler)); + #onCloseEnd(modalHandler: UmbModalHandler) { + modalHandler.containerElement.removeEventListener('close-end', () => this.#onCloseEnd(modalHandler)); this._close(modalHandler.key); } } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/backoffice.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/backoffice.element.ts index 26d669bebd..91b0742753 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/backoffice.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/backoffice.element.ts @@ -83,7 +83,7 @@ export class UmbBackofficeElement extends UmbLitElement { constructor() { super(); - this.provideContext(UMB_MODAL_CONTEXT_TOKEN, new UmbModalContext()); + this.provideContext(UMB_MODAL_CONTEXT_TOKEN, new UmbModalContext(this)); this.provideContext(UMB_NOTIFICATION_CONTEXT_TOKEN, new UmbNotificationContext()); // TODO: find a way this is possible outside this element. It needs to be possible to register stores in extensions diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/manifests.ts index d071e4021b..dcaf83f082 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/manifests.ts @@ -5,6 +5,7 @@ const modals: Array = [ type: 'modal', alias: 'Umb.Modal.DocumentPicker', name: 'Document Picker Modal', + loader: () => import('./document-picker/document-picker-modal.element'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice-modal-container.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice-modal-container.element.ts index 2a17d08dc0..fa8a6c0091 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice-modal-container.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice-modal-container.element.ts @@ -41,7 +41,7 @@ export class UmbBackofficeModalContainer extends UmbLitElement { render() { return html` - ${this._modals ? repeat(this._modals, (modalHandler) => html`${modalHandler.element}`) : ''} + ${this._modals ? repeat(this._modals, (modalHandler) => html`${modalHandler.containerElement}`) : ''} `; } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts index 53ad1efa0e..cb8bedb77a 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts @@ -121,10 +121,15 @@ export class UmbInputDocumentPickerElement extends FormControlMixin(UmbLitElemen private _openPicker() { // We send a shallow copy(good enough as its just an array of keys) of our this._selectedKeys, as we don't want the modal to manipulate our data: - const modalHandler = this._modalContext?.documentPicker({ - multiple: this.max === 1 ? false : true, - selection: [...this._selectedKeys], + const modalHandler = this._modalContext?.open('Umb.Modal.DocumentPicker', { + data: { + multiple: this.max === 1 ? false : true, + selection: [...this._selectedKeys], + }, + type: 'sidebar', + size: 'small', }); + modalHandler?.onClose().then(({ selection }: any) => { this._setSelection(selection); }); From 5f4549613717d549fa2973506156a778e38f3663 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 8 Mar 2023 09:07:30 +0100 Subject: [PATCH 021/134] copy types to new executable --- src/Umbraco.Web.UI.Client/utils/build-libs.js | 65 +++++++++++-------- 1 file changed, 39 insertions(+), 26 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/utils/build-libs.js b/src/Umbraco.Web.UI.Client/utils/build-libs.js index 567cdb3ac8..2b568f8d0c 100644 --- a/src/Umbraco.Web.UI.Client/utils/build-libs.js +++ b/src/Umbraco.Web.UI.Client/utils/build-libs.js @@ -2,6 +2,7 @@ import * as fs from 'fs'; import { exec } from 'child_process'; const libsDistFolder = '../Umbraco.Cms.StaticAssets/wwwroot/umbraco/backoffice/libs'; +const typesDistFolder = '../Umbraco.Web.UI.New'; const libs = fs.readdirSync('./libs'); for (let i = 0; i < libs.length; i++) { @@ -29,37 +30,49 @@ for (let i = 0; i < libs.length; i++) { function copyDistFromLib(libName, distPath) { console.log(`Copying ${libName} to StaticAssets`); - const targetFolder = `${libsDistFolder}/${libName}`; - fs.cp(distPath, targetFolder, { recursive: true }, function (err) { - if (err) { - console.error(`Error copying ${libName}`); - console.error(err); - } else { - console.log(`Copied ${libName}`); - findAndCopyTypesForLib(libName); - } - }); -} + const sourceFile = `${distPath}/index.js`; + const destFile = `${libsDistFolder}/${libName}.js`; -/** - * Look in the ./types/libs folder for a folder with the same name as the {libName} parameter - * and copy those types into the `${libsDistFolder}/${libName}` folder. - * Wrap the types from the index.d.ts file as a new module called "@umbraco-cms/{libName}". - */ -function findAndCopyTypesForLib(libName) { - console.log('Installing types for', libName); - const typesFolder = './types/libs'; - const libTypesFolder = `${typesFolder}/${libName}`; - if (fs.existsSync(libTypesFolder)) { - const libTypesTargetFolder = `${libsDistFolder}/${libName}`; - fs.cpSync(libTypesFolder, `${libTypesTargetFolder}/types`, { recursive: true }); - fs.writeFileSync(`${libTypesTargetFolder}/index.d.ts`, wrapLibTypeContent(libName), {}); + try { + fs.copyFileSync(sourceFile, destFile); + console.log(`Copied ${libName}`); + findAndCopyTypesForLib(libName, distPath); + } catch (err) { + console.error(`Error copying ${libName}`); + console.error(err); } } -function wrapLibTypeContent(libName) { +/** + * This function copies the content of the index.d.ts file from the lib into + * the ${typesDistFolder}/global.d.ts file and wrap it with + * a declare module statement using the lib name. + */ +function findAndCopyTypesForLib(libName, distPath) { + console.log(`Copying ${libName} types to ${typesDistFolder}`); + + const sourceFile = `${distPath}/index.d.ts`; + const destFile = `${typesDistFolder}/global.d.ts`; + + try { + // Take the content of sourceFile and wrap it with a declare module statement in destFile + const content = fs.readFileSync(sourceFile, 'utf8'); + if (!content) { + return; + } + fs.writeFileSync(destFile, wrapLibTypeContent(libName, content) + "\n", { flag: 'a' }); + console.log(`Copied ${libName} types`); + } catch (err) { + console.error(`Error copying ${libName} types`); + console.error(err); + } +} + +function wrapLibTypeContent(libName, content) { return ` - declare module "@umbraco-cms/${libName}"; + declare module "@umbraco-cms/${libName}" { + ${content} + }; `; } From 3d3bfa1e161d7c1d8d0631e32c657111e7ece370 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 10:17:10 +0100 Subject: [PATCH 022/134] introduce modal tokens --- src/Umbraco.Web.UI.Client/libs/modal/index.ts | 1 + .../libs/modal/modal-handler.ts | 25 +++++++++---- .../libs/modal/modal.context.ts | 14 +++---- .../libs/modal/token/modal-token.ts | 37 +++++++++++++++++++ .../document-picker-modal.element.ts | 8 +--- .../document-picker-modal.stories.ts | 5 ++- .../documents/modals/document-picker/index.ts | 18 +++++++++ .../input-document-picker.element.ts | 11 ++---- 8 files changed, 90 insertions(+), 29 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/libs/modal/token/modal-token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/index.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/index.ts b/src/Umbraco.Web.UI.Client/libs/modal/index.ts index 0065759e9e..4dc9d1d107 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/index.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/index.ts @@ -1,3 +1,4 @@ export * from './modal.context'; export * from './modal-handler'; export * from './layouts/modal-layout.element'; +export * from './token/modal-token'; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts index 2119157278..8bc20a5cd9 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts @@ -3,7 +3,8 @@ import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; import type { UUIModalSidebarElement, UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; import { v4 as uuidv4 } from 'uuid'; import { BehaviorSubject } from 'rxjs'; -import { UmbModalOptions } from './modal.context'; +import { UmbModalConfig, UmbModalType } from './modal.context'; +import { UmbModalToken } from './token/modal-token'; import { createExtensionElement, umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; import { UmbObserverController } from '@umbraco-cms/observable-api'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; @@ -21,15 +22,25 @@ export class UmbModalHandler { public readonly element = this.#element.asObservable(); public key: string; - public type: string; - public size: UUIModalSidebarSize; + public type: UmbModalType = 'dialog'; + public size: UUIModalSidebarSize = 'small'; - constructor(host: UmbControllerHostInterface, modalAlias: string, options?: UmbModalOptions) { + constructor( + host: UmbControllerHostInterface, + modalAlias: string | UmbModalToken, + data: unknown, + config?: UmbModalConfig + ) { this.#host = host; this.key = uuidv4(); - this.type = options?.type || 'dialog'; - this.size = options?.size || 'small'; + if (modalAlias instanceof UmbModalToken) { + this.type = modalAlias.getDefaultConfig().type || this.type; + this.size = modalAlias.getDefaultConfig().size || this.size; + } + + this.type = config?.type || this.type; + this.size = config?.size || this.size; // TODO: Consider if its right to use Promises, or use another event based system? Would we need to be able to cancel an event, to then prevent the closing..? this._closePromise = new Promise((resolve) => { @@ -37,7 +48,7 @@ export class UmbModalHandler { }); this.containerElement = this.#createContainerElement(); - this.#observeModal(modalAlias, options?.data); + this.#observeModal(modalAlias.toString(), data); } #createContainerElement() { diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index a2728483f7..38811b1b08 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -13,26 +13,26 @@ import './layouts/search/modal-layout-search.element.ts'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; import { BehaviorSubject } from 'rxjs'; import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; +import type { UmbModalDocumentPickerData } from '../../src/backoffice/documents/documents/modals/document-picker'; import { UmbModalChangePasswordData } from './layouts/modal-layout-change-password.element'; import type { UmbModalIconPickerData } from './layouts/icon-picker/modal-layout-icon-picker.element'; import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; -import type { UmbModalContentPickerData } from '../../src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import type { UmbModalMediaPickerData } from './layouts/media-picker/modal-layout-media-picker.element'; import type { UmbModalLinkPickerData } from './layouts/link-picker/modal-layout-link-picker.element'; import { UmbModalHandler } from './modal-handler'; import type { UmbBasicModalData } from './layouts/basic/modal-layout-basic.element'; import { UmbPickerModalData } from './layouts/modal-layout-picker-base'; +import { UmbModalToken } from './token/modal-token'; import { UmbContextToken } from '@umbraco-cms/context-api'; import { LanguageModel } from '@umbraco-cms/backend-api'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; export type UmbModalType = 'dialog' | 'sidebar'; -export interface UmbModalOptions { +export interface UmbModalConfig { type?: UmbModalType; size?: UUIModalSidebarSize; - data?: UmbModalData; } // TODO: we should find a way to easily open a modal without adding custom methods to this context. It would result in a better separation of concerns. @@ -61,11 +61,11 @@ export class UmbModalContext { /** * Opens a Content Picker sidebar modal * @public - * @param {UmbModalContentPickerData} [data] + * @param {UmbModalDocumentPickerData} [data] * @return {*} {UmbModalHandler} * @memberof UmbModalContext */ - public documentPicker(data?: UmbModalContentPickerData): UmbModalHandler { + public documentPicker(data?: UmbModalDocumentPickerData): UmbModalHandler { return this.open('umb-document-picker-modal', { data, type: 'sidebar', size: 'small' }); } @@ -204,8 +204,8 @@ export class UmbModalContext { * @return {*} {UmbModalHandler} * @memberof UmbModalContext */ - public open(modalAlias: string, options?: UmbModalOptions): UmbModalHandler { - const modalHandler = new UmbModalHandler(this.host, modalAlias, options); + public open(modalAlias: string | UmbModalToken, data: T, config?: UmbModalConfig): UmbModalHandler { + const modalHandler = new UmbModalHandler(this.host, modalAlias, data, config); modalHandler.containerElement.addEventListener('close-end', () => this.#onCloseEnd(modalHandler)); diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/modal-token.ts b/src/Umbraco.Web.UI.Client/libs/modal/token/modal-token.ts new file mode 100644 index 0000000000..784dc5becb --- /dev/null +++ b/src/Umbraco.Web.UI.Client/libs/modal/token/modal-token.ts @@ -0,0 +1,37 @@ +import { UmbModalConfig } from '../modal.context'; + +export class UmbModalToken { + /** + * Get the type of the token + * + * @public + * @type {T} + * @memberOf UmbModalToken + * @example `typeof MyToken.TYPE` + * @returns undefined + */ + readonly TYPE: T = undefined as never; + + /** + * @param alias Unique identifier for the token, + * @param defaultConfig Default configuration for the modal, + * @param _desc Description for the token, + * used only for debugging purposes, + * it should but does not need to be unique + */ + constructor(protected alias: string, protected defaultConfig: UmbModalConfig, protected _desc?: string) {} + + /** + * This method must always return the unique alias of the token since that + * will be used to look up the token in the injector. + * + * @returns the unique alias of the token + */ + toString(): string { + return this.alias; + } + + public getDefaultConfig(): UmbModalConfig { + return this.defaultConfig; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element.ts index 96a54a54b1..73cf047eb8 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element.ts @@ -2,16 +2,12 @@ import { css, html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, state } from 'lit/decorators.js'; import { UmbModalLayoutElement } from '../../../../../../libs/modal/layouts/modal-layout.element'; +import { UmbModalDocumentPickerData } from '.'; import type { UmbTreeElement } from 'src/backoffice/shared/components/tree/tree.element'; -export interface UmbModalContentPickerData { - multiple?: boolean; - selection?: Array; -} - // TODO: make use of UmbPickerLayoutBase @customElement('umb-document-picker-modal') -export class UmbDocumentPickerModalElement extends UmbModalLayoutElement { +export class UmbDocumentPickerModalElement extends UmbModalLayoutElement { static styles = [ UUITextStyles, css` diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.stories.ts index 14b86679db..ce00525c89 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.stories.ts @@ -4,7 +4,8 @@ import './document-picker-modal.element'; import { Meta, Story } from '@storybook/web-components'; import { html } from 'lit'; -import type { UmbDocumentPickerModalElement, UmbModalContentPickerData } from './document-picker-modal.element'; +import type { UmbDocumentPickerModalElement } from './document-picker-modal.element'; +import type { UmbModalDocumentPickerData } from './index'; export default { title: 'API/Modals/Layouts/Content Picker', @@ -12,7 +13,7 @@ export default { id: 'umb-document-picker-modal', } as Meta; -const data: UmbModalContentPickerData = { +const data: UmbModalDocumentPickerData = { multiple: true, selection: [], }; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/index.ts new file mode 100644 index 0000000000..6fb9b30151 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/index.ts @@ -0,0 +1,18 @@ +import { UmbModalToken } from 'libs/modal'; + +export interface UmbModalDocumentPickerData { + multiple?: boolean; + selection?: Array; +} + +export interface UmbModalDocumentPickerResponse { + selection: Array; +} + +export const UMB_DOCUMENT_PICKER_MODAL_TOKEN = new UmbModalToken( + 'Umb.Modal.DocumentPicker', + { + type: 'sidebar', + size: 'small', + } +); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts index cb8bedb77a..7cdd428fb4 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts @@ -9,6 +9,7 @@ import type { UmbDocumentTreeStore } from '../../../documents/documents/reposito import { UmbLitElement } from '@umbraco-cms/element'; import type { DocumentTreeItemModel, FolderTreeItemModel } from '@umbraco-cms/backend-api'; import type { UmbObserverController } from '@umbraco-cms/observable-api'; +import { UMB_DOCUMENT_PICKER_MODAL_TOKEN } from 'src/backoffice/documents/documents/modals/document-picker'; @customElement('umb-input-document-picker') export class UmbInputDocumentPickerElement extends FormControlMixin(UmbLitElement) { @@ -121,13 +122,9 @@ export class UmbInputDocumentPickerElement extends FormControlMixin(UmbLitElemen private _openPicker() { // We send a shallow copy(good enough as its just an array of keys) of our this._selectedKeys, as we don't want the modal to manipulate our data: - const modalHandler = this._modalContext?.open('Umb.Modal.DocumentPicker', { - data: { - multiple: this.max === 1 ? false : true, - selection: [...this._selectedKeys], - }, - type: 'sidebar', - size: 'small', + const modalHandler = this._modalContext?.open(UMB_DOCUMENT_PICKER_MODAL_TOKEN, { + multiple: this.max === 1 ? false : true, + selection: [...this._selectedKeys], }); modalHandler?.onClose().then(({ selection }: any) => { From f5329e010dbb4321e3eb622a3bee458aa9e8b6e7 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 11:08:49 +0100 Subject: [PATCH 023/134] move current user modal --- .../libs/modal/modal-handler.ts | 15 ++++++++++----- .../libs/modal/modal.context.ts | 4 ++-- .../current-user-header-app.element.ts | 3 ++- .../backoffice/users/current-user/manifests.ts | 3 ++- .../current-user/current-user-modal.element.ts} | 17 ++++++++--------- .../current-user/modals/current-user/index.ts | 6 ++++++ .../users/current-user/modals/manifests.ts | 12 ++++++++++++ 7 files changed, 42 insertions(+), 18 deletions(-) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts/modal-layout-current-user.element.ts => src/backoffice/users/current-user/modals/current-user/current-user-modal.element.ts} (92%) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts index 8bc20a5cd9..4dbbb68bf3 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts @@ -28,7 +28,7 @@ export class UmbModalHandler { constructor( host: UmbControllerHostInterface, modalAlias: string | UmbModalToken, - data: unknown, + data?: unknown, config?: UmbModalConfig ) { this.#host = host; @@ -68,10 +68,15 @@ export class UmbModalHandler { return modalDialogElement; } - async #createLayoutElement(manifest: ManifestModal, data: unknown) { + async #createLayoutElement(manifest: ManifestModal, data?: unknown) { + // TODO: add fallback element if no layout is found const layoutElement = (await createExtensionElement(manifest)) as any; - layoutElement.data = data; - layoutElement.modalHandler = this; + + if (layoutElement) { + layoutElement.data = data; + layoutElement.modalHandler = this; + } + return layoutElement; } @@ -88,7 +93,7 @@ export class UmbModalHandler { It makes this code a bit more complex. The main idea is to have the element as part of the modalHandler so it is possible to dispatch events from within the modal element to the one that opened it. Now when the element is an observable it makes it more complex because this host needs to subscribe to updates to the element, instead of just having a reference to it. If we find a better generic solution to communicate between the modal and the host, then we can remove the element as part of the modalHandler. */ - #observeModal(modalAlias: string, data: unknown) { + #observeModal(modalAlias: string, data?: unknown) { new UmbObserverController( this.#host, umbExtensionsRegistry.getByTypeAndAlias('modal', modalAlias), diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 38811b1b08..597ab52982 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -3,7 +3,7 @@ import './layouts/confirm/modal-layout-confirm.element'; import '../../src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element'; import './layouts/media-picker/modal-layout-media-picker.element'; import './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; -import './layouts/modal-layout-current-user.element'; +import '../../src/backoffice/users/current-user/modals/current-user/current-user-modal.element'; import './layouts/icon-picker/modal-layout-icon-picker.element'; import '../../src/backoffice/settings/languages/language-picker/language-picker-modal-layout.element'; import './layouts/link-picker/modal-layout-link-picker.element'; @@ -204,7 +204,7 @@ export class UmbModalContext { * @return {*} {UmbModalHandler} * @memberof UmbModalContext */ - public open(modalAlias: string | UmbModalToken, data: T, config?: UmbModalConfig): UmbModalHandler { + public open(modalAlias: string | UmbModalToken, data?: T, config?: UmbModalConfig): UmbModalHandler { const modalHandler = new UmbModalHandler(this.host, modalAlias, data, config); modalHandler.containerElement.addEventListener('close-end', () => this.#onCloseEnd(modalHandler)); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/current-user-header-app.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/current-user-header-app.element.ts index 1d98a94381..d53306805f 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/current-user-header-app.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/current-user-header-app.element.ts @@ -2,6 +2,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, CSSResultGroup, html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN } from './current-user.store'; +import { UMB_CURRENT_USER_MODAL_TOKEN } from './modals/current-user'; import type { UserDetails } from '@umbraco-cms/models'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; import { UmbLitElement } from '@umbraco-cms/element'; @@ -46,7 +47,7 @@ export class UmbCurrentUserHeaderApp extends UmbLitElement { } private _handleUserClick() { - this._modalContext?.userSettings(); + this._modalContext?.open(UMB_CURRENT_USER_MODAL_TOKEN); } render() { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/manifests.ts index 63d58c00a4..acff072136 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/manifests.ts @@ -1,3 +1,4 @@ +import { manifests as modalManifests } from './modals/manifests'; import type { ManifestHeaderApp, ManifestUserDashboard } from '@umbraco-cms/models'; export const userDashboards: Array = [ @@ -29,4 +30,4 @@ export const headerApps: Array = [ }, ]; -export const manifests = [...userDashboards, ...headerApps]; +export const manifests = [...userDashboards, ...headerApps, ...modalManifests]; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-current-user.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/current-user-modal.element.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-current-user.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/current-user-modal.element.ts index 15e80e6cbd..2d3ee3aa23 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-current-user.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/current-user-modal.element.ts @@ -1,21 +1,18 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, CSSResultGroup, html, nothing } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; -import { UmbModalHandler, UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '..'; +import { UmbModalHandler, UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../../libs/modal'; import { UmbCurrentUserHistoryStore, UmbCurrentUserHistoryItem, UMB_CURRENT_USER_HISTORY_STORE_CONTEXT_TOKEN, -} from '../../../src/backoffice/users/current-user/current-user-history.store'; -import { - UmbCurrentUserStore, - UMB_CURRENT_USER_STORE_CONTEXT_TOKEN, -} from '../../../src/backoffice/users/current-user/current-user.store'; +} from '../../current-user-history.store'; +import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN } from '../../current-user.store'; import type { UserDetails } from '@umbraco-cms/models'; import { UmbLitElement } from '@umbraco-cms/element'; -@customElement('umb-modal-layout-current-user') -export class UmbModalLayoutCurrentUserElement extends UmbLitElement { +@customElement('umb-current-user-modal') +export class UmbCurrentUserModalElement extends UmbLitElement { static styles: CSSResultGroup = [ UUITextStyles, css` @@ -202,8 +199,10 @@ export class UmbModalLayoutCurrentUserElement extends UmbLitElement { } } +export default UmbCurrentUserModalElement; + declare global { interface HTMLElementTagNameMap { - 'umb-modal-layout-current-user': UmbModalLayoutCurrentUserElement; + 'umb-current-user-modal': UmbCurrentUserModalElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/index.ts new file mode 100644 index 0000000000..0a04bff545 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/index.ts @@ -0,0 +1,6 @@ +import { UmbModalToken } from 'libs/modal'; + +export const UMB_CURRENT_USER_MODAL_TOKEN = new UmbModalToken('Umb.Modal.CurrentUser', { + type: 'sidebar', + size: 'small', +}); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/manifests.ts new file mode 100644 index 0000000000..68cc073e78 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/manifests.ts @@ -0,0 +1,12 @@ +import type { ManifestModal } from '@umbraco-cms/extensions-registry'; + +const modals: Array = [ + { + type: 'modal', + alias: 'Umb.Modal.CurrentUser', + name: 'Current User Modal', + loader: () => import('./current-user/current-user-modal.element'), + }, +]; + +export const manifests = [...modals]; From aa57e84c7c0b207d8221b1787d9f8772424fab51 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 11:13:01 +0100 Subject: [PATCH 024/134] move icon picker into shared folder --- src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts | 4 ++-- .../modals}/icon-picker/modal-layout-icon-picker.element.ts | 4 ++-- .../modals}/icon-picker/modal-layout-icon-picker.stories.ts | 2 +- .../modals}/icon-picker/modal-layout-icon-picker.test.ts | 0 .../uis/icon-picker/property-editor-ui-icon-picker.stories.ts | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts => src/backoffice/shared/modals}/icon-picker/modal-layout-icon-picker.element.ts (96%) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts => src/backoffice/shared/modals}/icon-picker/modal-layout-icon-picker.stories.ts (90%) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts => src/backoffice/shared/modals}/icon-picker/modal-layout-icon-picker.test.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 597ab52982..66528781b6 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -4,7 +4,7 @@ import '../../src/backoffice/documents/documents/modals/document-picker/document import './layouts/media-picker/modal-layout-media-picker.element'; import './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import '../../src/backoffice/users/current-user/modals/current-user/current-user-modal.element'; -import './layouts/icon-picker/modal-layout-icon-picker.element'; +import '../../src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.element'; import '../../src/backoffice/settings/languages/language-picker/language-picker-modal-layout.element'; import './layouts/link-picker/modal-layout-link-picker.element'; import './layouts/basic/modal-layout-basic.element'; @@ -15,7 +15,7 @@ import { BehaviorSubject } from 'rxjs'; import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; import type { UmbModalDocumentPickerData } from '../../src/backoffice/documents/documents/modals/document-picker'; import { UmbModalChangePasswordData } from './layouts/modal-layout-change-password.element'; -import type { UmbModalIconPickerData } from './layouts/icon-picker/modal-layout-icon-picker.element'; +import type { UmbModalIconPickerData } from '../../src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.element'; import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import type { UmbModalMediaPickerData } from './layouts/media-picker/modal-layout-media-picker.element'; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/icon-picker/modal-layout-icon-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.element.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/icon-picker/modal-layout-icon-picker.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.element.ts index 7643360961..7623188da7 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/icon-picker/modal-layout-icon-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.element.ts @@ -4,9 +4,9 @@ import { css, html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property, state } from 'lit/decorators.js'; import { styleMap } from 'lit/directives/style-map.js'; -import { UmbModalLayoutElement } from '../modal-layout.element'; +import { UmbModalLayoutElement } from '../../../../../libs/modal/layouts/modal-layout.element'; -import icons from '../../../../public-assets/icons/icons.json'; +import icons from '../../../../../public-assets/icons/icons.json'; export interface UmbModalIconPickerData { multiple: boolean; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/icon-picker/modal-layout-icon-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.stories.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/icon-picker/modal-layout-icon-picker.stories.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.stories.ts index 4e86e5e9c3..35e869ce4b 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/icon-picker/modal-layout-icon-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.stories.ts @@ -1,4 +1,4 @@ -import '../../../../src/backoffice/shared/components/body-layout/body-layout.element'; +import '../../components/body-layout/body-layout.element'; import './modal-layout-icon-picker.element'; import { Meta, Story } from '@storybook/web-components'; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/icon-picker/modal-layout-icon-picker.test.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/icon-picker/modal-layout-icon-picker.test.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.stories.ts index cd4e32b874..5f649038f3 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.stories.ts @@ -3,7 +3,7 @@ import { html } from 'lit-html'; import type { UmbPropertyEditorUIIconPickerElement } from './property-editor-ui-icon-picker.element'; import './property-editor-ui-icon-picker.element'; -import type { UmbModalLayoutIconPickerElement } from 'libs/modal/layouts/icon-picker/modal-layout-icon-picker.element'; +import type { UmbModalLayoutIconPickerElement } from 'src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.element'; export default { title: 'Property Editor UIs/Icon Picker', From b42dc729257eb8dab35d24dbb464bec42e027322 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 11:14:13 +0100 Subject: [PATCH 025/134] rename icon picker files --- src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts | 4 ++-- ...ut-icon-picker.element.ts => icon-picker-modal.element.ts} | 0 ...ut-icon-picker.stories.ts => icon-picker-modal.stories.ts} | 4 ++-- ...l-layout-icon-picker.test.ts => icon-picker-modal.test.ts} | 2 +- .../uis/icon-picker/property-editor-ui-icon-picker.stories.ts | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) rename src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/{modal-layout-icon-picker.element.ts => icon-picker-modal.element.ts} (100%) rename src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/{modal-layout-icon-picker.stories.ts => icon-picker-modal.stories.ts} (88%) rename src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/{modal-layout-icon-picker.test.ts => icon-picker-modal.test.ts} (88%) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 66528781b6..6fb76226e2 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -4,7 +4,7 @@ import '../../src/backoffice/documents/documents/modals/document-picker/document import './layouts/media-picker/modal-layout-media-picker.element'; import './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import '../../src/backoffice/users/current-user/modals/current-user/current-user-modal.element'; -import '../../src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.element'; +import '../../src/backoffice/shared/modals/icon-picker/icon-picker-modal.element'; import '../../src/backoffice/settings/languages/language-picker/language-picker-modal-layout.element'; import './layouts/link-picker/modal-layout-link-picker.element'; import './layouts/basic/modal-layout-basic.element'; @@ -15,7 +15,7 @@ import { BehaviorSubject } from 'rxjs'; import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; import type { UmbModalDocumentPickerData } from '../../src/backoffice/documents/documents/modals/document-picker'; import { UmbModalChangePasswordData } from './layouts/modal-layout-change-password.element'; -import type { UmbModalIconPickerData } from '../../src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.element'; +import type { UmbModalIconPickerData } from '../../src/backoffice/shared/modals/icon-picker/icon-picker-modal.element'; import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import type { UmbModalMediaPickerData } from './layouts/media-picker/modal-layout-media-picker.element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.stories.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.stories.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.stories.ts index 35e869ce4b..d3e65d40f9 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.stories.ts @@ -1,10 +1,10 @@ import '../../components/body-layout/body-layout.element'; -import './modal-layout-icon-picker.element'; +import './icon-picker-modal.element'; import { Meta, Story } from '@storybook/web-components'; import { html } from 'lit'; -import type { UmbModalLayoutIconPickerElement, UmbModalIconPickerData } from './modal-layout-icon-picker.element'; +import type { UmbModalLayoutIconPickerElement, UmbModalIconPickerData } from './icon-picker-modal.element'; export default { title: 'API/Modals/Layouts/Icon Picker', diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.test.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.test.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.test.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.test.ts index 1fedae1a79..e3776c06a2 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.test.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.test.ts @@ -1,5 +1,5 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbModalLayoutIconPickerElement } from './modal-layout-icon-picker.element'; +import { UmbModalLayoutIconPickerElement } from './icon-picker-modal.element'; import { defaultA11yConfig } from '@umbraco-cms/test-utils'; describe('umb-modal-layout-icon-picker', () => { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.stories.ts index 5f649038f3..3dd25e1cac 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.stories.ts @@ -3,7 +3,7 @@ import { html } from 'lit-html'; import type { UmbPropertyEditorUIIconPickerElement } from './property-editor-ui-icon-picker.element'; import './property-editor-ui-icon-picker.element'; -import type { UmbModalLayoutIconPickerElement } from 'src/backoffice/shared/modals/icon-picker/modal-layout-icon-picker.element'; +import type { UmbModalLayoutIconPickerElement } from 'src/backoffice/shared/modals/icon-picker/icon-picker-modal.element'; export default { title: 'Property Editor UIs/Icon Picker', From 81d7d6bc4e5add46d185321bd31846260e2cd0d2 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 11:15:52 +0100 Subject: [PATCH 026/134] add todo --- .../shared/modals/icon-picker/icon-picker-modal.element.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts index 7623188da7..af77922ada 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts @@ -14,6 +14,7 @@ export interface UmbModalIconPickerData { } // TODO: Make use of UmbPickerLayoutBase +// TODO: to prevent element extension we need to move the Picker logic into a separate class we can reuse across all pickers @customElement('umb-modal-layout-icon-picker') export class UmbModalLayoutIconPickerElement extends UmbModalLayoutElement { static styles = [ From 9cd8918e2255a0cf1c4d08f658d53ff70fbd2fe4 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 11:28:37 +0100 Subject: [PATCH 027/134] rename data interface --- .../libs/modal/modal.context.ts | 6 +++--- .../icon-picker/icon-picker-modal.element.ts | 10 +++++----- .../icon-picker/icon-picker-modal.stories.ts | 12 ++++++------ .../icon-picker/icon-picker-modal.test.ts | 10 +++++----- .../shared/modals/icon-picker/index.ts | 18 ++++++++++++++++++ .../property-editor-ui-icon-picker.stories.ts | 6 +++--- 6 files changed, 40 insertions(+), 22 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/index.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 6fb76226e2..68c0940a32 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -15,7 +15,7 @@ import { BehaviorSubject } from 'rxjs'; import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; import type { UmbModalDocumentPickerData } from '../../src/backoffice/documents/documents/modals/document-picker'; import { UmbModalChangePasswordData } from './layouts/modal-layout-change-password.element'; -import type { UmbModalIconPickerData } from '../../src/backoffice/shared/modals/icon-picker/icon-picker-modal.element'; +import type { UmbIconPickerModalData } from '../../src/backoffice/shared/modals/icon-picker/icon-picker-modal.element'; import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import type { UmbModalMediaPickerData } from './layouts/media-picker/modal-layout-media-picker.element'; @@ -94,11 +94,11 @@ export class UmbModalContext { /** * Opens an Icon Picker sidebar modal * @public - * @param {UmbModalIconPickerData} [data] + * @param {UmbIconPickerModalData} [data] * @return {*} {UmbModalHandler} * @memberof UmbModalContext */ - public iconPicker(data?: UmbModalIconPickerData): UmbModalHandler { + public iconPicker(data?: UmbIconPickerModalData): UmbModalHandler { return this.open('umb-modal-layout-icon-picker', { data, type: 'sidebar', size: 'small' }); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts index af77922ada..f161a37a71 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts @@ -8,15 +8,15 @@ import { UmbModalLayoutElement } from '../../../../../libs/modal/layouts/modal-l import icons from '../../../../../public-assets/icons/icons.json'; -export interface UmbModalIconPickerData { +export interface UmbIconPickerModalData { multiple: boolean; selection: string[]; } // TODO: Make use of UmbPickerLayoutBase // TODO: to prevent element extension we need to move the Picker logic into a separate class we can reuse across all pickers -@customElement('umb-modal-layout-icon-picker') -export class UmbModalLayoutIconPickerElement extends UmbModalLayoutElement { +@customElement('umb-icon-picker-modal') +export class UmbIconPickerModalElement extends UmbModalLayoutElement { static styles = [ UUITextStyles, css` @@ -211,10 +211,10 @@ export class UmbModalLayoutIconPickerElement extends UmbModalLayoutElement = () => html` +export const Overview: Story = () => html` - + `; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.test.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.test.ts index e3776c06a2..6831f4a0c9 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.test.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.test.ts @@ -1,16 +1,16 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbModalLayoutIconPickerElement } from './icon-picker-modal.element'; +import { UmbIconPickerModalElement } from './icon-picker-modal.element'; import { defaultA11yConfig } from '@umbraco-cms/test-utils'; -describe('umb-modal-layout-icon-picker', () => { - let element: UmbModalLayoutIconPickerElement; +describe('umb-icon-picker-modal', () => { + let element: UmbIconPickerModalElement; beforeEach(async () => { - element = await fixture(html` `); + element = await fixture(html` `); }); it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbModalLayoutIconPickerElement); + expect(element).to.be.instanceOf(UmbIconPickerModalElement); }); // TODO: Reinstate this test when the a11y audit is fixed on uui-color-picker diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/index.ts new file mode 100644 index 0000000000..6fb9b30151 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/index.ts @@ -0,0 +1,18 @@ +import { UmbModalToken } from 'libs/modal'; + +export interface UmbModalDocumentPickerData { + multiple?: boolean; + selection?: Array; +} + +export interface UmbModalDocumentPickerResponse { + selection: Array; +} + +export const UMB_DOCUMENT_PICKER_MODAL_TOKEN = new UmbModalToken( + 'Umb.Modal.DocumentPicker', + { + type: 'sidebar', + size: 'small', + } +); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.stories.ts index 3dd25e1cac..b48f69befe 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.stories.ts @@ -3,7 +3,7 @@ import { html } from 'lit-html'; import type { UmbPropertyEditorUIIconPickerElement } from './property-editor-ui-icon-picker.element'; import './property-editor-ui-icon-picker.element'; -import type { UmbModalLayoutIconPickerElement } from 'src/backoffice/shared/modals/icon-picker/icon-picker-modal.element'; +import type { UmbIconPickerModalElement } from 'src/backoffice/shared/modals/icon-picker/icon-picker-modal.element'; export default { title: 'Property Editor UIs/Icon Picker', @@ -11,8 +11,8 @@ export default { id: 'umb-property-editor-ui-icon-picker', } as Meta; -export const AAAOverview: Story = () => - html``; +export const AAAOverview: Story = () => + html``; AAAOverview.storyName = 'Overview'; AAAOverview.decorators = [ (story) => From 04a330f251421ae795f0b2fb5343031f74f2a22e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 11:35:10 +0100 Subject: [PATCH 028/134] register icon picker --- .../libs/modal/modal.context.ts | 2 +- .../document-type-workspace.element.ts | 3 ++- .../src/backoffice/shared/index.ts | 2 ++ .../icon-picker/icon-picker-modal.element.ts | 6 +----- .../icon-picker/icon-picker-modal.stories.ts | 3 ++- .../shared/modals/icon-picker/index.ts | 21 +++++++------------ .../src/backoffice/shared/modals/manifests.ts | 12 +++++++++++ .../property-editor-ui-icon-picker.element.ts | 3 ++- 8 files changed, 29 insertions(+), 23 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 68c0940a32..8d66ba37e0 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -15,7 +15,7 @@ import { BehaviorSubject } from 'rxjs'; import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; import type { UmbModalDocumentPickerData } from '../../src/backoffice/documents/documents/modals/document-picker'; import { UmbModalChangePasswordData } from './layouts/modal-layout-change-password.element'; -import type { UmbIconPickerModalData } from '../../src/backoffice/shared/modals/icon-picker/icon-picker-modal.element'; +import { UmbIconPickerModalData } from '../../src/backoffice/shared/modals/icon-picker'; import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import type { UmbModalMediaPickerData } from './layouts/media-picker/modal-layout-media-picker.element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.element.ts index e3881a8b96..067d8ad0ff 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.element.ts @@ -7,6 +7,7 @@ import { UmbWorkspaceDocumentTypeContext } from './document-type-workspace.conte import type { DocumentTypeModel } from '@umbraco-cms/backend-api'; import { UmbLitElement } from '@umbraco-cms/element'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; +import { UMB_ICON_PICKER_MODAL_TOKEN } from 'src/backoffice/shared/modals/icon-picker'; @customElement('umb-document-type-workspace') export class UmbDocumentTypeWorkspaceElement extends UmbLitElement implements UmbWorkspaceEntityElement { @@ -86,7 +87,7 @@ export class UmbDocumentTypeWorkspaceElement extends UmbLitElement implements Um } private async _handleIconClick() { - const modalHandler = this._modalContext?.iconPicker(); + const modalHandler = this._modalContext?.open(UMB_ICON_PICKER_MODAL_TOKEN); modalHandler?.onClose().then((saved) => { if (saved) this._workspaceContext?.setIcon(saved.icon); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/index.ts index c2b8157f67..d5239f165c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/index.ts @@ -4,6 +4,7 @@ import { manifests as propertyActionManifests } from './property-actions/manifes import { manifests as propertyEditorModelManifests } from './property-editors/models/manifests'; import { manifests as propertyEditorUIManifests } from './property-editors/uis/manifests'; import { manifests as collectionViewManifests } from './collection/views/manifests'; +import { manifests as modalManifests } from './modals/manifests'; import { umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; import { ManifestTypes } from '@umbraco-cms/extensions-registry'; @@ -20,4 +21,5 @@ registerExtensions([ ...propertyEditorModelManifests, ...propertyEditorUIManifests, ...collectionViewManifests, + ...modalManifests, ]); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts index f161a37a71..9d78a25378 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts @@ -7,11 +7,7 @@ import { styleMap } from 'lit/directives/style-map.js'; import { UmbModalLayoutElement } from '../../../../../libs/modal/layouts/modal-layout.element'; import icons from '../../../../../public-assets/icons/icons.json'; - -export interface UmbIconPickerModalData { - multiple: boolean; - selection: string[]; -} +import { UmbIconPickerModalData } from '.'; // TODO: Make use of UmbPickerLayoutBase // TODO: to prevent element extension we need to move the Picker logic into a separate class we can reuse across all pickers diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.stories.ts index 14d23079b4..2facbfb42a 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.stories.ts @@ -4,7 +4,8 @@ import './icon-picker-modal.element'; import { Meta, Story } from '@storybook/web-components'; import { html } from 'lit'; -import type { UmbIconPickerModalElement, UmbIconPickerModalData } from './icon-picker-modal.element'; +import type { UmbIconPickerModalElement } from './icon-picker-modal.element'; +import { UmbIconPickerModalData } from '.'; export default { title: 'API/Modals/Layouts/Icon Picker', diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/index.ts index 6fb9b30151..d53160f70a 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/index.ts @@ -1,18 +1,11 @@ import { UmbModalToken } from 'libs/modal'; -export interface UmbModalDocumentPickerData { - multiple?: boolean; - selection?: Array; +export interface UmbIconPickerModalData { + multiple: boolean; + selection: string[]; } -export interface UmbModalDocumentPickerResponse { - selection: Array; -} - -export const UMB_DOCUMENT_PICKER_MODAL_TOKEN = new UmbModalToken( - 'Umb.Modal.DocumentPicker', - { - type: 'sidebar', - size: 'small', - } -); +export const UMB_ICON_PICKER_MODAL_TOKEN = new UmbModalToken('Umb.Modal.IconPicker', { + type: 'sidebar', + size: 'small', +}); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts new file mode 100644 index 0000000000..9ee3c608ee --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts @@ -0,0 +1,12 @@ +import type { ManifestModal } from '@umbraco-cms/extensions-registry'; + +const modals: Array = [ + { + type: 'modal', + alias: 'Umb.Modal.IconPicker', + name: 'Icon Picker Modal', + loader: () => import('./icon-picker/icon-picker-modal.element'), + }, +]; + +export const manifests = [...modals]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts index cf75ba0d20..1c4b129b89 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts @@ -3,6 +3,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property } from 'lit/decorators.js'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../../libs/modal'; import { UmbLitElement } from '@umbraco-cms/element'; +import { UMB_ICON_PICKER_MODAL_TOKEN } from 'src/backoffice/shared/modals/icon-picker'; /** * @element umb-property-editor-ui-icon-picker @@ -27,7 +28,7 @@ export class UmbPropertyEditorUIIconPickerElement extends UmbLitElement { } private _openModal() { - this._modalContext?.iconPicker(); + this._modalContext?.open(UMB_ICON_PICKER_MODAL_TOKEN); } render() { From 556e97bd05e559d57285b756ee003c08f7d5c09a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 11:37:55 +0100 Subject: [PATCH 029/134] move media picker files --- src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts | 4 ++-- .../modals}/media-picker/modal-layout-media-picker.element.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts => src/backoffice/media/media/modals}/media-picker/modal-layout-media-picker.element.ts (92%) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 8d66ba37e0..82790f8718 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -1,7 +1,7 @@ // TODO: lazy load import './layouts/confirm/modal-layout-confirm.element'; import '../../src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element'; -import './layouts/media-picker/modal-layout-media-picker.element'; +import '../../src/backoffice/media/media/modals/media-picker/modal-layout-media-picker.element'; import './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import '../../src/backoffice/users/current-user/modals/current-user/current-user-modal.element'; import '../../src/backoffice/shared/modals/icon-picker/icon-picker-modal.element'; @@ -18,7 +18,7 @@ import { UmbModalChangePasswordData } from './layouts/modal-layout-change-passwo import { UmbIconPickerModalData } from '../../src/backoffice/shared/modals/icon-picker'; import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; -import type { UmbModalMediaPickerData } from './layouts/media-picker/modal-layout-media-picker.element'; +import type { UmbModalMediaPickerData } from '../../src/backoffice/media/media/modals/media-picker/modal-layout-media-picker.element'; import type { UmbModalLinkPickerData } from './layouts/link-picker/modal-layout-link-picker.element'; import { UmbModalHandler } from './modal-handler'; import type { UmbBasicModalData } from './layouts/basic/modal-layout-basic.element'; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/media-picker/modal-layout-media-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/modal-layout-media-picker.element.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/media-picker/modal-layout-media-picker.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/modal-layout-media-picker.element.ts index 354061a302..654920df68 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/media-picker/modal-layout-media-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/modal-layout-media-picker.element.ts @@ -1,14 +1,14 @@ import { css, html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, state } from 'lit/decorators.js'; -import { UmbModalLayoutElement } from '../modal-layout.element'; +import { UmbModalLayoutElement } from '../../../../../../libs/modal/layouts/modal-layout.element'; export interface UmbModalMediaPickerData { multiple?: boolean; selection: Array; } -import { UmbTreeElement } from '../../../../src/backoffice/shared/components/tree/tree.element'; +import { UmbTreeElement } from '../../../../shared/components/tree/tree.element'; @customElement('umb-modal-layout-media-picker') export class UmbModalLayoutMediaPickerElement extends UmbModalLayoutElement { From 076b503b97537c54ac95ad4cec201039764fbcff Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 11:40:58 +0100 Subject: [PATCH 030/134] rename media picker element and element class --- src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts | 4 ++-- ...edia-picker.element.ts => media-picker-modal.element.ts} | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) rename src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/{modal-layout-media-picker.element.ts => media-picker-modal.element.ts} (91%) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 82790f8718..76bd60a064 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -1,7 +1,7 @@ // TODO: lazy load import './layouts/confirm/modal-layout-confirm.element'; import '../../src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element'; -import '../../src/backoffice/media/media/modals/media-picker/modal-layout-media-picker.element'; +import '../../src/backoffice/media/media/modals/media-picker/media-picker-modal.element'; import './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import '../../src/backoffice/users/current-user/modals/current-user/current-user-modal.element'; import '../../src/backoffice/shared/modals/icon-picker/icon-picker-modal.element'; @@ -18,7 +18,7 @@ import { UmbModalChangePasswordData } from './layouts/modal-layout-change-passwo import { UmbIconPickerModalData } from '../../src/backoffice/shared/modals/icon-picker'; import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; -import type { UmbModalMediaPickerData } from '../../src/backoffice/media/media/modals/media-picker/modal-layout-media-picker.element'; +import type { UmbModalMediaPickerData } from '../../src/backoffice/media/media/modals/media-picker/media-picker-modal.element'; import type { UmbModalLinkPickerData } from './layouts/link-picker/modal-layout-link-picker.element'; import { UmbModalHandler } from './modal-handler'; import type { UmbBasicModalData } from './layouts/basic/modal-layout-basic.element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/modal-layout-media-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/media-picker-modal.element.ts similarity index 91% rename from src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/modal-layout-media-picker.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/media-picker-modal.element.ts index 654920df68..8a806f524a 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/modal-layout-media-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/media-picker-modal.element.ts @@ -10,8 +10,8 @@ export interface UmbModalMediaPickerData { import { UmbTreeElement } from '../../../../shared/components/tree/tree.element'; -@customElement('umb-modal-layout-media-picker') -export class UmbModalLayoutMediaPickerElement extends UmbModalLayoutElement { +@customElement('umb-media-picker-modal') +export class UmbMediaPickerModalElement extends UmbModalLayoutElement { static styles = [ UUITextStyles, css` @@ -97,6 +97,6 @@ export class UmbModalLayoutMediaPickerElement extends UmbModalLayoutElement Date: Wed, 8 Mar 2023 11:52:21 +0100 Subject: [PATCH 031/134] register media picker --- .../libs/modal/modal.context.ts | 6 +++--- .../media/entity-bulk-actions/move/move.action.ts | 6 +++++- .../src/backoffice/media/media/manifests.ts | 2 ++ .../src/backoffice/media/media/modals/manifests.ts | 12 ++++++++++++ .../media/media/modals/media-picker/index.ts | 11 +++++++++++ .../media-picker/media-picker-modal.element.ts | 10 ++++------ .../input-media-picker/input-media-picker.element.ts | 4 +++- 7 files changed, 40 insertions(+), 11 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/index.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 76bd60a064..f1c9cccc3c 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -18,7 +18,7 @@ import { UmbModalChangePasswordData } from './layouts/modal-layout-change-passwo import { UmbIconPickerModalData } from '../../src/backoffice/shared/modals/icon-picker'; import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; -import type { UmbModalMediaPickerData } from '../../src/backoffice/media/media/modals/media-picker/media-picker-modal.element'; +import { UmbMediaPickerModalData } from '../../src/backoffice/media/media/modals/media-picker'; import type { UmbModalLinkPickerData } from './layouts/link-picker/modal-layout-link-picker.element'; import { UmbModalHandler } from './modal-handler'; import type { UmbBasicModalData } from './layouts/basic/modal-layout-basic.element'; @@ -72,11 +72,11 @@ export class UmbModalContext { /** * Opens a Media Picker sidebar modal * @public - * @param {UmbModalMediaPickerData} [data] + * @param {UmbMediaPickerModalData} [data] * @return {*} {UmbModalHandler} * @memberof UmbModalContext */ - public mediaPicker(data?: UmbModalMediaPickerData): UmbModalHandler { + public mediaPicker(data?: UmbMediaPickerModalData): UmbModalHandler { return this.open('umb-modal-layout-media-picker', { data, type: 'sidebar', size: 'small' }); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/move/move.action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/move/move.action.ts index fc474fba0e..d6d9e1ec59 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/move/move.action.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/move/move.action.ts @@ -1,4 +1,5 @@ import type { UmbMediaRepository } from '../../repository/media.repository'; +import { UMB_MEDIA_PICKER_MODAL_TOKEN } from '../../modals/media-picker'; import { UmbEntityBulkActionBase } from '@umbraco-cms/entity-action'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; @@ -17,7 +18,10 @@ export class UmbMediaMoveEntityBulkAction extends UmbEntityBulkActionBase = [ + { + type: 'modal', + alias: 'Umb.Modal.MediaPicker', + name: 'Media Picker Modal', + loader: () => import('./media-picker/media-picker-modal.element'), + }, +]; + +export const manifests = [...modals]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/index.ts new file mode 100644 index 0000000000..c38fa5dc7f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/index.ts @@ -0,0 +1,11 @@ +import { UmbModalToken } from 'libs/modal'; + +export interface UmbMediaPickerModalData { + multiple?: boolean; + selection: Array; +} + +export const UMB_MEDIA_PICKER_MODAL_TOKEN = new UmbModalToken('Umb.Modal.MediaPicker', { + type: 'sidebar', + size: 'small', +}); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/media-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/media-picker-modal.element.ts index 8a806f524a..097925b7ac 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/media-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/media-picker-modal.element.ts @@ -3,15 +3,11 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, state } from 'lit/decorators.js'; import { UmbModalLayoutElement } from '../../../../../../libs/modal/layouts/modal-layout.element'; -export interface UmbModalMediaPickerData { - multiple?: boolean; - selection: Array; -} - import { UmbTreeElement } from '../../../../shared/components/tree/tree.element'; +import { UmbMediaPickerModalData } from '.'; @customElement('umb-media-picker-modal') -export class UmbMediaPickerModalElement extends UmbModalLayoutElement { +export class UmbMediaPickerModalElement extends UmbModalLayoutElement { static styles = [ UUITextStyles, css` @@ -95,6 +91,8 @@ export class UmbMediaPickerModalElement extends UmbModalLayoutElement { this._setSelection(selection); }); From 0d94c2ac059fae2c7255cecc1e1797270e560362 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 11:54:01 +0100 Subject: [PATCH 032/134] move change password modal files --- src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts | 2 +- .../change-password}/modal-layout-change-password.element.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts => src/backoffice/users/current-user/modals/change-password}/modal-layout-change-password.element.ts (98%) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index f1c9cccc3c..7aaff59073 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -14,7 +14,7 @@ import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; import { BehaviorSubject } from 'rxjs'; import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; import type { UmbModalDocumentPickerData } from '../../src/backoffice/documents/documents/modals/document-picker'; -import { UmbModalChangePasswordData } from './layouts/modal-layout-change-password.element'; +import { UmbModalChangePasswordData } from '../../src/backoffice/users/current-user/modals/change-password/modal-layout-change-password.element'; import { UmbIconPickerModalData } from '../../src/backoffice/shared/modals/icon-picker'; import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-change-password.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/modal-layout-change-password.element.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-change-password.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/modal-layout-change-password.element.ts index 927af7e900..6bc2c022be 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-change-password.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/modal-layout-change-password.element.ts @@ -1,7 +1,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, CSSResultGroup, html, nothing } from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { UmbModalHandler } from '..'; +import { UmbModalHandler } from '../../../../../../libs/modal'; import { UmbLitElement } from '@umbraco-cms/element'; export interface UmbModalChangePasswordData { From 9f98e1479e23c0127cc039525229b4918a817d2b Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 12:20:35 +0100 Subject: [PATCH 033/134] rename change password modal file --- ...hange-password.element.ts => change-password-modal.element.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/{modal-layout-change-password.element.ts => change-password-modal.element.ts} (100%) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/modal-layout-change-password.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/modal-layout-change-password.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts From 73ad974462390bdadfec663dae430548bd686d92 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 12:20:53 +0100 Subject: [PATCH 034/134] update import --- src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 7aaff59073..71fd7df256 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -14,7 +14,7 @@ import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; import { BehaviorSubject } from 'rxjs'; import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; import type { UmbModalDocumentPickerData } from '../../src/backoffice/documents/documents/modals/document-picker'; -import { UmbModalChangePasswordData } from '../../src/backoffice/users/current-user/modals/change-password/modal-layout-change-password.element'; +import { UmbModalChangePasswordData } from '../../src/backoffice/users/current-user/modals/change-password/change-password-modal.element'; import { UmbIconPickerModalData } from '../../src/backoffice/shared/modals/icon-picker'; import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; From 205b8f7af31f6db8ceb173fb6a5316419bc61fc0 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 12:22:13 +0100 Subject: [PATCH 035/134] rename element class + element --- .../modals/change-password/change-password-modal.element.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts index 6bc2c022be..2235256603 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts @@ -8,8 +8,8 @@ export interface UmbModalChangePasswordData { requireOldPassword: boolean; } -@customElement('umb-modal-layout-change-password') -export class UmbModalLayoutChangePasswordElement extends UmbLitElement { +@customElement('umb-change-password-modal') +export class UmbChangePasswordModalElement extends UmbLitElement { static styles: CSSResultGroup = [ UUITextStyles, css` @@ -107,6 +107,6 @@ export class UmbModalLayoutChangePasswordElement extends UmbLitElement { declare global { interface HTMLElementTagNameMap { - 'umb-modal-layout-change-password': UmbModalLayoutChangePasswordElement; + 'umb-change-password-modal': UmbChangePasswordModalElement; } } From a7c81582454170c03f6f8664f9b7edd31a1e92ae Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 12:22:34 +0100 Subject: [PATCH 036/134] add default export --- .../modals/change-password/change-password-modal.element.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts index 2235256603..1bd23108fe 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts @@ -105,6 +105,8 @@ export class UmbChangePasswordModalElement extends UmbLitElement { } } +export default UmbChangePasswordModalElement; + declare global { interface HTMLElementTagNameMap { 'umb-change-password-modal': UmbChangePasswordModalElement; From f9b90444361ec476ccaac88d89dabb7f0e86bd90 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 12:27:22 +0100 Subject: [PATCH 037/134] add modal token --- .../libs/modal/modal.context.ts | 4 ++-- .../change-password/change-password-modal.element.ts | 7 ++----- .../current-user/modals/change-password/index.ts | 12 ++++++++++++ 3 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/index.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 71fd7df256..9bcdba3953 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -14,7 +14,7 @@ import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; import { BehaviorSubject } from 'rxjs'; import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; import type { UmbModalDocumentPickerData } from '../../src/backoffice/documents/documents/modals/document-picker'; -import { UmbModalChangePasswordData } from '../../src/backoffice/users/current-user/modals/change-password/change-password-modal.element'; +import { UmbChangePasswordModalData } from '../../src/backoffice/users/current-user/modals/change-password'; import { UmbIconPickerModalData } from '../../src/backoffice/shared/modals/icon-picker'; import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; @@ -133,7 +133,7 @@ export class UmbModalContext { * @return {*} {UmbModalHandler} * @memberof UmbModalContext */ - public changePassword(data: UmbModalChangePasswordData): UmbModalHandler { + public changePassword(data: UmbChangePasswordModalData): UmbModalHandler { return this.open('umb-modal-layout-change-password', { data, type: 'dialog' }); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts index 1bd23108fe..852b4d7bf9 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts @@ -2,12 +2,9 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, CSSResultGroup, html, nothing } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { UmbModalHandler } from '../../../../../../libs/modal'; +import { UmbChangePasswordModalData } from '.'; import { UmbLitElement } from '@umbraco-cms/element'; -export interface UmbModalChangePasswordData { - requireOldPassword: boolean; -} - @customElement('umb-change-password-modal') export class UmbChangePasswordModalElement extends UmbLitElement { static styles: CSSResultGroup = [ @@ -32,7 +29,7 @@ export class UmbChangePasswordModalElement extends UmbLitElement { modalHandler?: UmbModalHandler; @property() - data?: UmbModalChangePasswordData; + data?: UmbChangePasswordModalData; private _close() { this.modalHandler?.close(); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/index.ts new file mode 100644 index 0000000000..69c26a274a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/index.ts @@ -0,0 +1,12 @@ +import { UmbModalToken } from 'libs/modal'; + +export interface UmbChangePasswordModalData { + requireOldPassword: boolean; +} + +export const UMB_CHANGE_PASSWORD_MODAL_TOKEN = new UmbModalToken( + 'Umb.Modal.ChangePassword', + { + type: 'dialog', + } +); From effc9f308c5f61050a9c94986968c962d1e38da6 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 13:44:59 +0100 Subject: [PATCH 038/134] move link picker --- src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts | 4 ++-- .../modals}/link-picker/modal-layout-link-picker.element.ts | 4 ++-- .../link-picker/modal-layout-multi-url-picker.stories.ts | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts => src/backoffice/shared/modals}/link-picker/modal-layout-link-picker.element.ts (97%) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts => src/backoffice/shared/modals}/link-picker/modal-layout-multi-url-picker.stories.ts (88%) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 9bcdba3953..961d30bf9c 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -6,7 +6,7 @@ import './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-pick import '../../src/backoffice/users/current-user/modals/current-user/current-user-modal.element'; import '../../src/backoffice/shared/modals/icon-picker/icon-picker-modal.element'; import '../../src/backoffice/settings/languages/language-picker/language-picker-modal-layout.element'; -import './layouts/link-picker/modal-layout-link-picker.element'; +import '../../src/backoffice/shared/modals/link-picker/modal-layout-link-picker.element'; import './layouts/basic/modal-layout-basic.element'; import './layouts/search/modal-layout-search.element.ts'; @@ -19,7 +19,7 @@ import { UmbIconPickerModalData } from '../../src/backoffice/shared/modals/icon- import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import { UmbMediaPickerModalData } from '../../src/backoffice/media/media/modals/media-picker'; -import type { UmbModalLinkPickerData } from './layouts/link-picker/modal-layout-link-picker.element'; +import type { UmbModalLinkPickerData } from '../../src/backoffice/shared/modals/link-picker/modal-layout-link-picker.element'; import { UmbModalHandler } from './modal-handler'; import type { UmbBasicModalData } from './layouts/basic/modal-layout-basic.element'; import { UmbPickerModalData } from './layouts/modal-layout-picker-base'; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/link-picker/modal-layout-link-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/modal-layout-link-picker.element.ts similarity index 97% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/link-picker/modal-layout-link-picker.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/modal-layout-link-picker.element.ts index 45b4215e6c..14ab8b00e3 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/link-picker/modal-layout-link-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/modal-layout-link-picker.element.ts @@ -3,8 +3,8 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, query, state } from 'lit/decorators.js'; import { UUIBooleanInputEvent, UUIInputElement } from '@umbraco-ui/uui'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; -import { UmbModalLayoutElement } from '../modal-layout.element'; -import { UmbTreeElement } from '../../../../src/backoffice/shared/components/tree/tree.element'; +import { UmbModalLayoutElement } from '../../../../../libs/modal/layouts/modal-layout.element'; +import { UmbTreeElement } from '../../components/tree/tree.element'; import { buildUdi, getKeyFromUdi } from '@umbraco-cms/utils'; export interface UmbModalLinkPickerData { diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/link-picker/modal-layout-multi-url-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/modal-layout-multi-url-picker.stories.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/link-picker/modal-layout-multi-url-picker.stories.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/modal-layout-multi-url-picker.stories.ts index 67a5448760..e16539b91c 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/link-picker/modal-layout-multi-url-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/modal-layout-multi-url-picker.stories.ts @@ -1,4 +1,4 @@ -import '../../../../src/backoffice/shared/components/body-layout/body-layout.element'; +import '../../components/body-layout/body-layout.element'; import './modal-layout-link-picker.element'; import { Meta, Story } from '@storybook/web-components'; From 94b4db973a031251304329e855b78f2bacf88507 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 13:59:34 +0100 Subject: [PATCH 039/134] set up link picker modal token --- .../libs/modal/modal.context.ts | 4 +-- .../shared/modals/link-picker/index.ts | 30 +++++++++++++++++++ .../modal-layout-link-picker.element.ts | 30 +++---------------- 3 files changed, 36 insertions(+), 28 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/index.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 961d30bf9c..9f92f4e975 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -19,7 +19,7 @@ import { UmbIconPickerModalData } from '../../src/backoffice/shared/modals/icon- import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import { UmbMediaPickerModalData } from '../../src/backoffice/media/media/modals/media-picker'; -import type { UmbModalLinkPickerData } from '../../src/backoffice/shared/modals/link-picker/modal-layout-link-picker.element'; +import type { UmbLinkPickerModalData } from '../../src/backoffice/shared/modals/link-picker/modal-layout-link-picker.element'; import { UmbModalHandler } from './modal-handler'; import type { UmbBasicModalData } from './layouts/basic/modal-layout-basic.element'; import { UmbPickerModalData } from './layouts/modal-layout-picker-base'; @@ -109,7 +109,7 @@ export class UmbModalContext { * @return {*} {UmbModalHandler} * @memberof UmbModalContext */ - public linkPicker(data?: UmbModalLinkPickerData): UmbModalHandler { + public linkPicker(data?: UmbLinkPickerModalData): UmbModalHandler { return this.open('umb-modal-layout-link-picker', { data, type: 'sidebar', diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/index.ts new file mode 100644 index 0000000000..5de689e5a4 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/index.ts @@ -0,0 +1,30 @@ +import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; +import { UmbModalToken } from 'libs/modal'; + +export interface UmbLinkPickerModalData { + link: UmbLinkPickerLink; + config: UmbLinkPickerConfig; +} + +export interface UmbLinkPickerLink { + icon?: string | null; + name?: string | null; + published?: boolean | null; + queryString?: string | null; + target?: string | null; + trashed?: boolean | null; + udi?: string | null; + url?: string | null; +} + +// TODO: investigate: this looks more like a property editor configuration. Is this used in the correct way? +export interface UmbLinkPickerConfig { + hideAnchor?: boolean; + ignoreUserStartNodes?: boolean; + overlaySize?: UUIModalSidebarSize; +} + +export const UMB_LINK_PICKER_MODAL_TOKEN = new UmbModalToken('Umb.Modal.LinkPicker', { + type: 'sidebar', + size: 'small', +}); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/modal-layout-link-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/modal-layout-link-picker.element.ts index 14ab8b00e3..d93c77a974 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/modal-layout-link-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/modal-layout-link-picker.element.ts @@ -2,35 +2,13 @@ import { css, html, nothing } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, query, state } from 'lit/decorators.js'; import { UUIBooleanInputEvent, UUIInputElement } from '@umbraco-ui/uui'; -import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; import { UmbModalLayoutElement } from '../../../../../libs/modal/layouts/modal-layout.element'; import { UmbTreeElement } from '../../components/tree/tree.element'; +import { UmbLinkPickerConfig, UmbLinkPickerLink, UmbLinkPickerModalData } from '.'; import { buildUdi, getKeyFromUdi } from '@umbraco-cms/utils'; -export interface UmbModalLinkPickerData { - link: LinkPickerData; - config: LinkPickerConfig; -} - -export interface LinkPickerData { - icon?: string | null; - name?: string | null; - published?: boolean | null; - queryString?: string | null; - target?: string | null; - trashed?: boolean | null; - udi?: string | null; - url?: string | null; -} - -export interface LinkPickerConfig { - hideAnchor?: boolean; - ignoreUserStartNodes?: boolean; - overlaySize?: UUIModalSidebarSize; -} - @customElement('umb-modal-layout-link-picker') -export class UmbModalLayoutLinkPickerElement extends UmbModalLayoutElement { +export class UmbModalLayoutLinkPickerElement extends UmbModalLayoutElement { static styles = [ UUITextStyles, css` @@ -69,7 +47,7 @@ export class UmbModalLayoutLinkPickerElement extends UmbModalLayoutElement Date: Wed, 8 Mar 2023 14:02:04 +0100 Subject: [PATCH 040/134] rename element class and element --- .../link-picker/modal-layout-link-picker.element.ts | 6 +++--- .../modal-layout-multi-url-picker.stories.ts | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/modal-layout-link-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/modal-layout-link-picker.element.ts index d93c77a974..e1034d6428 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/modal-layout-link-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/modal-layout-link-picker.element.ts @@ -7,8 +7,8 @@ import { UmbTreeElement } from '../../components/tree/tree.element'; import { UmbLinkPickerConfig, UmbLinkPickerLink, UmbLinkPickerModalData } from '.'; import { buildUdi, getKeyFromUdi } from '@umbraco-cms/utils'; -@customElement('umb-modal-layout-link-picker') -export class UmbModalLayoutLinkPickerElement extends UmbModalLayoutElement { +@customElement('umb-link-picker-modal') +export class UmbLinkPickerModalElement extends UmbModalLayoutElement { static styles = [ UUITextStyles, css` @@ -197,6 +197,6 @@ export class UmbModalLayoutLinkPickerElement extends UmbModalLayoutElement = () => html` +export const Overview: Story = () => html` - + `; From 01486035473ac92f3c8fe263ab3d5accfc3671d4 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 8 Mar 2023 14:02:15 +0100 Subject: [PATCH 041/134] copy types --- src/Umbraco.Web.UI.Client/utils/build-libs.js | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/utils/build-libs.js b/src/Umbraco.Web.UI.Client/utils/build-libs.js index 2b568f8d0c..a87f392bc8 100644 --- a/src/Umbraco.Web.UI.Client/utils/build-libs.js +++ b/src/Umbraco.Web.UI.Client/utils/build-libs.js @@ -2,7 +2,7 @@ import * as fs from 'fs'; import { exec } from 'child_process'; const libsDistFolder = '../Umbraco.Cms.StaticAssets/wwwroot/umbraco/backoffice/libs'; -const typesDistFolder = '../Umbraco.Web.UI.New'; +const typesDistFolder = '../Umbraco.Web.UI.New/dts'; const libs = fs.readdirSync('./libs'); for (let i = 0; i < libs.length; i++) { @@ -35,7 +35,7 @@ function copyDistFromLib(libName, distPath) { const destFile = `${libsDistFolder}/${libName}.js`; try { - fs.copyFileSync(sourceFile, destFile); + fs.cpSync(sourceFile, destFile, { recursive: true }); console.log(`Copied ${libName}`); findAndCopyTypesForLib(libName, distPath); } catch (err) { @@ -53,15 +53,12 @@ function findAndCopyTypesForLib(libName, distPath) { console.log(`Copying ${libName} types to ${typesDistFolder}`); const sourceFile = `${distPath}/index.d.ts`; - const destFile = `${typesDistFolder}/global.d.ts`; + const destFile = `${typesDistFolder}/${libName}.d.ts`; try { - // Take the content of sourceFile and wrap it with a declare module statement in destFile - const content = fs.readFileSync(sourceFile, 'utf8'); - if (!content) { - return; - } - fs.writeFileSync(destFile, wrapLibTypeContent(libName, content) + "\n", { flag: 'a' }); + fs.cpSync(sourceFile, destFile, { recursive: true }); + const content = fs.readFileSync(destFile, 'utf-8'); + fs.writeFileSync(destFile, wrapLibTypeContent(libName, content)); console.log(`Copied ${libName} types`); } catch (err) { console.error(`Error copying ${libName} types`); @@ -70,9 +67,8 @@ function findAndCopyTypesForLib(libName, distPath) { } function wrapLibTypeContent(libName, content) { - return ` - declare module "@umbraco-cms/${libName}" { - ${content} - }; - `; + return `declare module "@umbraco-cms/${libName}" { + ${content.replace(/declare/g, '')} +} +`; } From 45492d38f79ff3ebbce189129030311b785b4a44 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 14:03:33 +0100 Subject: [PATCH 042/134] rename link picker files --- src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts | 4 ++-- ...ut-link-picker.element.ts => link-picker-modal.element.ts} | 0 ...lti-url-picker.stories.ts => link-picker-modal.stories.ts} | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) rename src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/{modal-layout-link-picker.element.ts => link-picker-modal.element.ts} (100%) rename src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/{modal-layout-multi-url-picker.stories.ts => link-picker-modal.stories.ts} (81%) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 9f92f4e975..8dfeebc3af 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -6,7 +6,7 @@ import './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-pick import '../../src/backoffice/users/current-user/modals/current-user/current-user-modal.element'; import '../../src/backoffice/shared/modals/icon-picker/icon-picker-modal.element'; import '../../src/backoffice/settings/languages/language-picker/language-picker-modal-layout.element'; -import '../../src/backoffice/shared/modals/link-picker/modal-layout-link-picker.element'; +import '../../src/backoffice/shared/modals/link-picker/link-picker-modal.element'; import './layouts/basic/modal-layout-basic.element'; import './layouts/search/modal-layout-search.element.ts'; @@ -19,7 +19,7 @@ import { UmbIconPickerModalData } from '../../src/backoffice/shared/modals/icon- import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import { UmbMediaPickerModalData } from '../../src/backoffice/media/media/modals/media-picker'; -import type { UmbLinkPickerModalData } from '../../src/backoffice/shared/modals/link-picker/modal-layout-link-picker.element'; +import type { UmbLinkPickerModalData } from '../../src/backoffice/shared/modals/link-picker/link-picker-modal.element'; import { UmbModalHandler } from './modal-handler'; import type { UmbBasicModalData } from './layouts/basic/modal-layout-basic.element'; import { UmbPickerModalData } from './layouts/modal-layout-picker-base'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/modal-layout-link-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/link-picker-modal.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/modal-layout-link-picker.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/link-picker-modal.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/modal-layout-multi-url-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/link-picker-modal.stories.ts similarity index 81% rename from src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/modal-layout-multi-url-picker.stories.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/link-picker-modal.stories.ts index 32b5d95de7..6408f338a7 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/modal-layout-multi-url-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/link-picker-modal.stories.ts @@ -1,10 +1,10 @@ import '../../components/body-layout/body-layout.element'; -import './modal-layout-link-picker.element'; +import './link-picker-modal.element'; import { Meta, Story } from '@storybook/web-components'; import { html } from 'lit'; -import type { UmbLinkPickerModalElement } from './modal-layout-link-picker.element'; +import type { UmbLinkPickerModalElement } from './link-picker-modal.element'; export default { title: 'API/Modals/Layouts/Link Picker', From aefa893fcdb07ca4032ea46247388afff2dfaf2b Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 14:04:04 +0100 Subject: [PATCH 043/134] export element --- .../shared/modals/link-picker/link-picker-modal.element.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/link-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/link-picker-modal.element.ts index e1034d6428..9b5ee06650 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/link-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/link-picker-modal.element.ts @@ -195,6 +195,8 @@ export class UmbLinkPickerModalElement extends UmbModalLayoutElement Date: Wed, 8 Mar 2023 14:04:23 +0100 Subject: [PATCH 044/134] register modal --- .../src/backoffice/shared/modals/manifests.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts index 9ee3c608ee..2328970deb 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts @@ -7,6 +7,12 @@ const modals: Array = [ name: 'Icon Picker Modal', loader: () => import('./icon-picker/icon-picker-modal.element'), }, + { + type: 'modal', + alias: 'Umb.Modal.LinkPicker', + name: 'Link Picker Modal', + loader: () => import('./link-picker/link-picker-modal.element'), + }, ]; export const manifests = [...modals]; From 04e919bec7b966549438a47edbb07954439d208d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 14:09:30 +0100 Subject: [PATCH 045/134] open link picker using the token --- .../input-multi-url-picker/input-multi-url-picker.element.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-multi-url-picker/input-multi-url-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-multi-url-picker/input-multi-url-picker.element.ts index 5b1baa0b5e..93f38264c2 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-multi-url-picker/input-multi-url-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-multi-url-picker/input-multi-url-picker.element.ts @@ -3,6 +3,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property } from 'lit/decorators.js'; import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; +import { UMB_LINK_PICKER_MODAL_TOKEN } from '../../modals/link-picker'; import { UmbLitElement } from '@umbraco-cms/element'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; @@ -144,7 +145,7 @@ export class UmbInputMultiUrlPickerElement extends FormControlMixin(UmbLitElemen } private _openPicker(data?: MultiUrlData, index?: number) { - const modalHandler = this._modalContext?.linkPicker({ + const modalHandler = this._modalContext?.open(UMB_LINK_PICKER_MODAL_TOKEN, { link: { name: data?.name, published: data?.published, From 7b73ae5995a042340a23fa39da941fafae425e22 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 14:11:58 +0100 Subject: [PATCH 046/134] rename document picker interfaces --- src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts | 6 +++--- .../modals/document-picker/document-picker-modal.element.ts | 4 ++-- .../modals/document-picker/document-picker-modal.stories.ts | 4 ++-- .../documents/documents/modals/document-picker/index.ts | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 8dfeebc3af..87f57bbd06 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -13,7 +13,7 @@ import './layouts/search/modal-layout-search.element.ts'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; import { BehaviorSubject } from 'rxjs'; import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; -import type { UmbModalDocumentPickerData } from '../../src/backoffice/documents/documents/modals/document-picker'; +import type { UmbDocumentPickerModalData } from '../../src/backoffice/documents/documents/modals/document-picker'; import { UmbChangePasswordModalData } from '../../src/backoffice/users/current-user/modals/change-password'; import { UmbIconPickerModalData } from '../../src/backoffice/shared/modals/icon-picker'; import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; @@ -61,11 +61,11 @@ export class UmbModalContext { /** * Opens a Content Picker sidebar modal * @public - * @param {UmbModalDocumentPickerData} [data] + * @param {UmbDocumentPickerModalData} [data] * @return {*} {UmbModalHandler} * @memberof UmbModalContext */ - public documentPicker(data?: UmbModalDocumentPickerData): UmbModalHandler { + public documentPicker(data?: UmbDocumentPickerModalData): UmbModalHandler { return this.open('umb-document-picker-modal', { data, type: 'sidebar', size: 'small' }); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element.ts index 73cf047eb8..a2c784d3f9 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element.ts @@ -2,12 +2,12 @@ import { css, html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, state } from 'lit/decorators.js'; import { UmbModalLayoutElement } from '../../../../../../libs/modal/layouts/modal-layout.element'; -import { UmbModalDocumentPickerData } from '.'; +import { UmbDocumentPickerModalData } from '.'; import type { UmbTreeElement } from 'src/backoffice/shared/components/tree/tree.element'; // TODO: make use of UmbPickerLayoutBase @customElement('umb-document-picker-modal') -export class UmbDocumentPickerModalElement extends UmbModalLayoutElement { +export class UmbDocumentPickerModalElement extends UmbModalLayoutElement { static styles = [ UUITextStyles, css` diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.stories.ts index ce00525c89..8c61ae22cf 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.stories.ts @@ -5,7 +5,7 @@ import { Meta, Story } from '@storybook/web-components'; import { html } from 'lit'; import type { UmbDocumentPickerModalElement } from './document-picker-modal.element'; -import type { UmbModalDocumentPickerData } from './index'; +import type { UmbDocumentPickerModalData } from './index'; export default { title: 'API/Modals/Layouts/Content Picker', @@ -13,7 +13,7 @@ export default { id: 'umb-document-picker-modal', } as Meta; -const data: UmbModalDocumentPickerData = { +const data: UmbDocumentPickerModalData = { multiple: true, selection: [], }; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/index.ts index 6fb9b30151..6dd5da0a71 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/index.ts @@ -1,15 +1,15 @@ import { UmbModalToken } from 'libs/modal'; -export interface UmbModalDocumentPickerData { +export interface UmbDocumentPickerModalData { multiple?: boolean; selection?: Array; } -export interface UmbModalDocumentPickerResponse { +export interface UmbDocumentPickerModalResponse { selection: Array; } -export const UMB_DOCUMENT_PICKER_MODAL_TOKEN = new UmbModalToken( +export const UMB_DOCUMENT_PICKER_MODAL_TOKEN = new UmbModalToken( 'Umb.Modal.DocumentPicker', { type: 'sidebar', From 43ee6ed924047d2cf6c71b2227debfe835f18ab3 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 14:13:17 +0100 Subject: [PATCH 047/134] move basic modal files --- .../libs/modal/modal.context.ts | 4 ++-- .../basic/modal-layout-basic.element.ts | 20 +++++++++---------- .../basic/modal-layout-basic.stories.ts | 0 3 files changed, 12 insertions(+), 12 deletions(-) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts => src/backoffice/shared/modals}/basic/modal-layout-basic.element.ts (68%) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts => src/backoffice/shared/modals}/basic/modal-layout-basic.stories.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 87f57bbd06..89afd485e2 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -7,7 +7,7 @@ import '../../src/backoffice/users/current-user/modals/current-user/current-user import '../../src/backoffice/shared/modals/icon-picker/icon-picker-modal.element'; import '../../src/backoffice/settings/languages/language-picker/language-picker-modal-layout.element'; import '../../src/backoffice/shared/modals/link-picker/link-picker-modal.element'; -import './layouts/basic/modal-layout-basic.element'; +import '../../src/backoffice/shared/modals/basic/modal-layout-basic.element'; import './layouts/search/modal-layout-search.element.ts'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; @@ -21,7 +21,7 @@ import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-edit import { UmbMediaPickerModalData } from '../../src/backoffice/media/media/modals/media-picker'; import type { UmbLinkPickerModalData } from '../../src/backoffice/shared/modals/link-picker/link-picker-modal.element'; import { UmbModalHandler } from './modal-handler'; -import type { UmbBasicModalData } from './layouts/basic/modal-layout-basic.element'; +import type { UmbBasicModalData } from '../../src/backoffice/shared/modals/basic/modal-layout-basic.element'; import { UmbPickerModalData } from './layouts/modal-layout-picker-base'; import { UmbModalToken } from './token/modal-token'; import { UmbContextToken } from '@umbraco-cms/context-api'; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/basic/modal-layout-basic.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/modal-layout-basic.element.ts similarity index 68% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/basic/modal-layout-basic.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/modal-layout-basic.element.ts index 593f2415ab..f8471af0ba 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/basic/modal-layout-basic.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/modal-layout-basic.element.ts @@ -2,12 +2,12 @@ import { css, html, TemplateResult } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement } from 'lit/decorators.js'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; -import { UmbModalLayoutElement } from '../modal-layout.element'; +import { UmbModalLayoutElement } from '../../../../../libs/modal/layouts/modal-layout.element'; export interface UmbBasicModalData { - header: TemplateResult | string; + header: TemplateResult | string; content: TemplateResult | string; - overlaySize?: UUIModalSidebarSize; + overlaySize?: UUIModalSidebarSize; } @customElement('umb-modal-layout-basic') @@ -16,15 +16,15 @@ export class UmbModalLayoutBasicElement extends UmbModalLayoutElement + ${this.data?.content} Close `; - } + } } export default UmbModalLayoutBasicElement; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/basic/modal-layout-basic.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/modal-layout-basic.stories.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/basic/modal-layout-basic.stories.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/modal-layout-basic.stories.ts From 94e28588d25ed4e795429a28510df5ec1c332bc2 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 8 Mar 2023 14:23:02 +0100 Subject: [PATCH 048/134] add sourcemap to libs --- src/Umbraco.Web.UI.Client/utils/build-libs.js | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/utils/build-libs.js b/src/Umbraco.Web.UI.Client/utils/build-libs.js index a87f392bc8..6ac2dd814d 100644 --- a/src/Umbraco.Web.UI.Client/utils/build-libs.js +++ b/src/Umbraco.Web.UI.Client/utils/build-libs.js @@ -23,6 +23,7 @@ for (let i = 0; i < libs.length; i++) { console.log('Installed ' + lib + '.'); copyDistFromLib(lib, `${libFolder}/dist`); + findAndCopyTypesForLib(lib); } }); } @@ -31,13 +32,11 @@ for (let i = 0; i < libs.length; i++) { function copyDistFromLib(libName, distPath) { console.log(`Copying ${libName} to StaticAssets`); - const sourceFile = `${distPath}/index.js`; - const destFile = `${libsDistFolder}/${libName}.js`; + const destPath = `${libsDistFolder}/${libName}`; try { - fs.cpSync(sourceFile, destFile, { recursive: true }); + fs.readdirSync(distPath).forEach(file => fs.cpSync(`${distPath}/${file}`, `${destPath}/${file}`, { recursive: true })); console.log(`Copied ${libName}`); - findAndCopyTypesForLib(libName, distPath); } catch (err) { console.error(`Error copying ${libName}`); console.error(err); @@ -49,16 +48,16 @@ function copyDistFromLib(libName, distPath) { * the ${typesDistFolder}/global.d.ts file and wrap it with * a declare module statement using the lib name. */ -function findAndCopyTypesForLib(libName, distPath) { +function findAndCopyTypesForLib(libName) { console.log(`Copying ${libName} types to ${typesDistFolder}`); - const sourceFile = `${distPath}/index.d.ts`; - const destFile = `${typesDistFolder}/${libName}.d.ts`; + const sourceFile = `${libsDistFolder}/${libName}/index.d.ts`; + const destPath = `${typesDistFolder}/${libName}/index.d.ts`; try { - fs.cpSync(sourceFile, destFile, { recursive: true }); - const content = fs.readFileSync(destFile, 'utf-8'); - fs.writeFileSync(destFile, wrapLibTypeContent(libName, content)); + fs.cpSync(sourceFile, destPath, { recursive: true }); + const content = fs.readFileSync(destPath, 'utf-8'); + fs.writeFileSync(destPath, wrapLibTypeContent(libName, content)); console.log(`Copied ${libName} types`); } catch (err) { console.error(`Error copying ${libName} types`); From 6c32ca67c58d709b4ec71fb7166714cb9410129d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 14:26:09 +0100 Subject: [PATCH 049/134] rename basic modal files --- .../libs/modal/modal.context.ts | 4 +- ...asic.element.ts => basic-modal.element.ts} | 0 .../modals/basic/basic-modal.stories.ts | 43 +++++++++++++++++ .../basic/modal-layout-basic.stories.ts | 47 ------------------- 4 files changed, 45 insertions(+), 49 deletions(-) rename src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/{modal-layout-basic.element.ts => basic-modal.element.ts} (100%) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.stories.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/modal-layout-basic.stories.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 89afd485e2..6e9d6a3ffe 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -7,7 +7,7 @@ import '../../src/backoffice/users/current-user/modals/current-user/current-user import '../../src/backoffice/shared/modals/icon-picker/icon-picker-modal.element'; import '../../src/backoffice/settings/languages/language-picker/language-picker-modal-layout.element'; import '../../src/backoffice/shared/modals/link-picker/link-picker-modal.element'; -import '../../src/backoffice/shared/modals/basic/modal-layout-basic.element'; +import '../../src/backoffice/shared/modals/basic/basic-modal.element'; import './layouts/search/modal-layout-search.element.ts'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; @@ -21,7 +21,7 @@ import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-edit import { UmbMediaPickerModalData } from '../../src/backoffice/media/media/modals/media-picker'; import type { UmbLinkPickerModalData } from '../../src/backoffice/shared/modals/link-picker/link-picker-modal.element'; import { UmbModalHandler } from './modal-handler'; -import type { UmbBasicModalData } from '../../src/backoffice/shared/modals/basic/modal-layout-basic.element'; +import type { UmbBasicModalData } from '../../src/backoffice/shared/modals/basic/basic-modal.element'; import { UmbPickerModalData } from './layouts/modal-layout-picker-base'; import { UmbModalToken } from './token/modal-token'; import { UmbContextToken } from '@umbraco-cms/context-api'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/modal-layout-basic.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/modal-layout-basic.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.stories.ts new file mode 100644 index 0000000000..81dc5af7bf --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.stories.ts @@ -0,0 +1,43 @@ +import { Meta, Story } from '@storybook/web-components'; +import { html } from 'lit'; +import { UmbModalLayoutBasicElement, UmbBasicModalData } from './basic-modal.element'; + +export default { + title: 'API/Modals/Layouts/Basic', + component: 'umb-modal-layout-basic', + id: 'modal-layout-basic', +} as Meta; + +const htmlContent = html` + + + + + + Title 1 + Title 2 + + + + Cell 1 + Cell 2 + + + + Cell 3 + Cell 4 + +`; + +const data: UmbBasicModalData = { + header: html` Debug: Contexts`, + content: htmlContent, + overlaySize: 'small', +}; + +export const Overview: Story = () => html` + + +`; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/modal-layout-basic.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/modal-layout-basic.stories.ts deleted file mode 100644 index 7f04471515..0000000000 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/modal-layout-basic.stories.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; -import { UmbModalLayoutBasicElement, UmbBasicModalData } from './modal-layout-basic.element'; - -export default { - title: 'API/Modals/Layouts/Basic', - component: 'umb-modal-layout-basic', - id: 'modal-layout-basic', -} as Meta; - - -const htmlContent = html` - - - - - - - Title 1 - Title 2 - - - - Cell 1 - Cell 2 - - - - Cell 3 - Cell 4 - - `; - - -const data: UmbBasicModalData = { - header: html` Debug: Contexts`, - content: htmlContent, - overlaySize: 'small' -}; - - -export const Overview: Story = () => html` - - -`; \ No newline at end of file From 176cd6e4af7025e596bb9cfce01b10ce80e46a75 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 14:28:10 +0100 Subject: [PATCH 050/134] rename element and element class --- .../shared/modals/basic/basic-modal.element.ts | 8 ++++---- .../shared/modals/basic/basic-modal.stories.ts | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.element.ts index f8471af0ba..b8960bc69b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.element.ts @@ -10,8 +10,8 @@ export interface UmbBasicModalData { overlaySize?: UUIModalSidebarSize; } -@customElement('umb-modal-layout-basic') -export class UmbModalLayoutBasicElement extends UmbModalLayoutElement { +@customElement('umb-basic-modal') +export class UmbBasicModalElement extends UmbModalLayoutElement { static styles = [ UUITextStyles, css` @@ -42,10 +42,10 @@ export class UmbModalLayoutBasicElement extends UmbModalLayoutElement @@ -35,9 +35,9 @@ const data: UmbBasicModalData = { overlaySize: 'small', }; -export const Overview: Story = () => html` +export const Overview: Story = () => html` - + `; From d800fe4a766b8d46cabc86748ca9e70b74c0c32b Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 14:32:57 +0100 Subject: [PATCH 051/134] move basic modal data interface --- .../libs/modal/modal.context.ts | 6 +++--- .../shared/modals/basic/basic-modal.element.ts | 13 ++++--------- .../src/backoffice/shared/modals/basic/index.ts | 6 ++++++ 3 files changed, 13 insertions(+), 12 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/index.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 6e9d6a3ffe..9ca125fac1 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -16,12 +16,12 @@ import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; import type { UmbDocumentPickerModalData } from '../../src/backoffice/documents/documents/modals/document-picker'; import { UmbChangePasswordModalData } from '../../src/backoffice/users/current-user/modals/change-password'; import { UmbIconPickerModalData } from '../../src/backoffice/shared/modals/icon-picker'; +import { UmbMediaPickerModalData } from '../../src/backoffice/media/media/modals/media-picker'; +import type { UmbBasicModalData } from '../../src/backoffice/shared/modals/basic'; +import type { UmbLinkPickerModalData } from '../../src/backoffice/shared/modals/link-picker'; import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; -import { UmbMediaPickerModalData } from '../../src/backoffice/media/media/modals/media-picker'; -import type { UmbLinkPickerModalData } from '../../src/backoffice/shared/modals/link-picker/link-picker-modal.element'; import { UmbModalHandler } from './modal-handler'; -import type { UmbBasicModalData } from '../../src/backoffice/shared/modals/basic/basic-modal.element'; import { UmbPickerModalData } from './layouts/modal-layout-picker-base'; import { UmbModalToken } from './token/modal-token'; import { UmbContextToken } from '@umbraco-cms/context-api'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.element.ts index b8960bc69b..ba99230808 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.element.ts @@ -1,14 +1,9 @@ -import { css, html, TemplateResult } from 'lit'; +import { css, html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement } from 'lit/decorators.js'; -import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; +import { ifDefined } from 'lit/directives/if-defined.js'; import { UmbModalLayoutElement } from '../../../../../libs/modal/layouts/modal-layout.element'; - -export interface UmbBasicModalData { - header: TemplateResult | string; - content: TemplateResult | string; - overlaySize?: UUIModalSidebarSize; -} +import { UmbBasicModalData } from '.'; @customElement('umb-basic-modal') export class UmbBasicModalElement extends UmbModalLayoutElement { @@ -34,7 +29,7 @@ export class UmbBasicModalElement extends UmbModalLayoutElement + ${this.data?.content} Close diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/index.ts new file mode 100644 index 0000000000..18b9f0c4e2 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/index.ts @@ -0,0 +1,6 @@ +import { TemplateResult } from 'lit'; + +export interface UmbBasicModalData { + header: string; + content: TemplateResult | string; +} From e99c0c1e8dc9a2fc9f2d3ffd0fc6f2826fc1852b Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 14:50:54 +0100 Subject: [PATCH 052/134] add token and register basic modal --- .../shared/components/debug/debug.element.ts | 16 +++++++++++----- .../shared/modals/basic/basic-modal.element.ts | 2 +- .../src/backoffice/shared/modals/basic/index.ts | 9 +++++++-- .../src/backoffice/shared/modals/manifests.ts | 6 ++++++ 4 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/debug.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/debug.element.ts index 6976905f8a..00ba2c4526 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/debug.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/debug.element.ts @@ -1,6 +1,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html, nothing, TemplateResult } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; +import { UMB_BASIC_MODAL_TOKEN } from '../../modals/basic'; import { UmbContextDebugRequest } from '@umbraco-cms/context-api'; import { UmbLitElement } from '@umbraco-cms/element'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; @@ -102,11 +103,16 @@ export class UmbDebug extends UmbLitElement { } private _openDialog() { - this._modalContext?.openBasic({ - header: html` Debug: Contexts`, - content: this._htmlContent(), - overlaySize: 'small', - }); + this._modalContext?.open( + UMB_BASIC_MODAL_TOKEN, + { + headline: 'Debug: Contexts:', + content: this._htmlContent(), + }, + { + type: 'sidebar', + } + ); } private _renderDialog() { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.element.ts index ba99230808..27d8f9fd4e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.element.ts @@ -29,7 +29,7 @@ export class UmbBasicModalElement extends UmbModalLayoutElement + ${this.data?.content} Close diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/index.ts index 18b9f0c4e2..2c27f5f30c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/index.ts @@ -1,6 +1,11 @@ -import { TemplateResult } from 'lit'; +import type { TemplateResult } from 'lit'; +import { UmbModalToken } from '@umbraco-cms/modal'; export interface UmbBasicModalData { - header: string; + headline: string; content: TemplateResult | string; } + +export const UMB_BASIC_MODAL_TOKEN = new UmbModalToken('Umb.Modal.Basic', { + type: 'dialog', +}); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts index 2328970deb..e915079b9e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts @@ -13,6 +13,12 @@ const modals: Array = [ name: 'Link Picker Modal', loader: () => import('./link-picker/link-picker-modal.element'), }, + { + type: 'modal', + alias: 'Umb.Modal.Basic', + name: 'Basic Modal', + loader: () => import('./basic/basic-modal.element'), + }, ]; export const manifests = [...modals]; From 3d700a1d478f1e691f71ccca5c7d64114de30101 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 15:01:02 +0100 Subject: [PATCH 053/134] rename confirm modal files --- .../libs/modal/modal.context.ts | 4 ++-- .../shared/modals/confirm/confirm-modal.element.ts} | 6 +++--- .../shared/modals/confirm/confirm-modal.stories.ts} | 12 ++++++------ 3 files changed, 11 insertions(+), 11 deletions(-) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts/confirm/modal-layout-confirm.element.ts => src/backoffice/shared/modals/confirm/confirm-modal.element.ts} (86%) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts/confirm/modal-layout-confirm.stories.ts => src/backoffice/shared/modals/confirm/confirm-modal.stories.ts} (78%) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 9ca125fac1..4d53904b29 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -1,5 +1,5 @@ // TODO: lazy load -import './layouts/confirm/modal-layout-confirm.element'; +import '../../src/backoffice/shared/modals/confirm/confirm-modal.element'; import '../../src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element'; import '../../src/backoffice/media/media/modals/media-picker/media-picker-modal.element'; import './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; @@ -19,7 +19,7 @@ import { UmbIconPickerModalData } from '../../src/backoffice/shared/modals/icon- import { UmbMediaPickerModalData } from '../../src/backoffice/media/media/modals/media-picker'; import type { UmbBasicModalData } from '../../src/backoffice/shared/modals/basic'; import type { UmbLinkPickerModalData } from '../../src/backoffice/shared/modals/link-picker'; -import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; +import type { UmbModalConfirmData } from '../../src/backoffice/shared/modals/confirm/confirm-modal.element'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import { UmbModalHandler } from './modal-handler'; import { UmbPickerModalData } from './layouts/modal-layout-picker-base'; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/confirm/modal-layout-confirm.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts similarity index 86% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/confirm/modal-layout-confirm.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts index cdeab181b7..bb3c085d7b 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/confirm/modal-layout-confirm.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts @@ -1,7 +1,7 @@ import { html, TemplateResult } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement } from 'lit/decorators.js'; -import { UmbModalLayoutElement } from '../modal-layout.element'; +import { UmbModalLayoutElement } from '../../../../../libs/modal/layouts/modal-layout.element'; export interface UmbModalConfirmData { headline: string; @@ -10,7 +10,7 @@ export interface UmbModalConfirmData { confirmLabel?: string; } -@customElement('umb-modal-layout-confirm') +@customElement('umb-confirm-modal') export class UmbModalLayoutConfirmElement extends UmbModalLayoutElement { static styles = [UUITextStyles]; @@ -42,6 +42,6 @@ export class UmbModalLayoutConfirmElement extends UmbModalLayoutElement = () => html` - + `; const dangerData: UmbModalConfirmData = { @@ -36,5 +36,5 @@ export const Danger: Story = () => html` - + `; From 4799ea34262fab3328b261c30acb9600bdee3e18 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 15:01:43 +0100 Subject: [PATCH 054/134] rename element class --- .../shared/modals/confirm/confirm-modal.element.ts | 4 ++-- .../shared/modals/confirm/confirm-modal.stories.ts | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts index bb3c085d7b..7ddca1575e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts @@ -11,7 +11,7 @@ export interface UmbModalConfirmData { } @customElement('umb-confirm-modal') -export class UmbModalLayoutConfirmElement extends UmbModalLayoutElement { +export class UmbConfirmModalElement extends UmbModalLayoutElement { static styles = [UUITextStyles]; private _handleConfirm() { @@ -42,6 +42,6 @@ export class UmbModalLayoutConfirmElement extends UmbModalLayoutElement = () => html` +export const Positive: Story = () => html` @@ -32,7 +32,7 @@ const dangerData: UmbModalConfirmData = { confirmLabel: 'Delete', }; -export const Danger: Story = () => html` +export const Danger: Story = () => html` From 1bf9657bfe87cc2db6be5a47d119f2ca0579aff4 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 15:11:09 +0100 Subject: [PATCH 055/134] register confirm modal --- .../libs/modal/modal.context.ts | 6 +++--- .../modals/confirm/confirm-modal.element.ts | 14 +++++--------- .../modals/confirm/confirm-modal.stories.ts | 7 ++++--- .../backoffice/shared/modals/confirm/index.ts | 13 +++++++++++++ .../src/backoffice/shared/modals/manifests.ts | 18 ++++++++++++------ 5 files changed, 37 insertions(+), 21 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/index.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 4d53904b29..99a1002a5a 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -19,7 +19,7 @@ import { UmbIconPickerModalData } from '../../src/backoffice/shared/modals/icon- import { UmbMediaPickerModalData } from '../../src/backoffice/media/media/modals/media-picker'; import type { UmbBasicModalData } from '../../src/backoffice/shared/modals/basic'; import type { UmbLinkPickerModalData } from '../../src/backoffice/shared/modals/link-picker'; -import type { UmbModalConfirmData } from '../../src/backoffice/shared/modals/confirm/confirm-modal.element'; +import type { UmbConfirmModalData } from '../../src/backoffice/shared/modals/confirm'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import { UmbModalHandler } from './modal-handler'; import { UmbPickerModalData } from './layouts/modal-layout-picker-base'; @@ -50,11 +50,11 @@ export class UmbModalContext { /** * Opens a Confirm modal * @public - * @param {UmbModalConfirmData} data + * @param {UmbConfirmModalData} data * @return {*} {UmbModalHandler} * @memberof UmbModalContext */ - public confirm(data: UmbModalConfirmData): UmbModalHandler { + public confirm(data: UmbConfirmModalData): UmbModalHandler { return this.open('umb-modal-layout-confirm', { data, type: 'dialog' }); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts index 7ddca1575e..a3c1892eb4 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts @@ -1,17 +1,11 @@ -import { html, TemplateResult } from 'lit'; +import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement } from 'lit/decorators.js'; import { UmbModalLayoutElement } from '../../../../../libs/modal/layouts/modal-layout.element'; - -export interface UmbModalConfirmData { - headline: string; - content: TemplateResult | string; - color?: 'positive' | 'danger'; - confirmLabel?: string; -} +import { UmbConfirmModalData } from '.'; @customElement('umb-confirm-modal') -export class UmbConfirmModalElement extends UmbModalLayoutElement { +export class UmbConfirmModalElement extends UmbModalLayoutElement { static styles = [UUITextStyles]; private _handleConfirm() { @@ -40,6 +34,8 @@ export class UmbConfirmModalElement extends UmbModalLayoutElementThis example and all content items underneath and thereby making their content publicly available.`, @@ -25,7 +26,7 @@ export const Positive: Story = () => html` `; -const dangerData: UmbModalConfirmData = { +const dangerData: UmbConfirmModalData = { color: 'danger', headline: 'Delete', content: html`Delete This example and all items underneath.`, diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/index.ts new file mode 100644 index 0000000000..89bf529cc9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/index.ts @@ -0,0 +1,13 @@ +import type { TemplateResult } from 'lit'; +import { UmbModalToken } from '@umbraco-cms/modal'; + +export interface UmbConfirmModalData { + headline: string; + content: TemplateResult | string; + color?: 'positive' | 'danger'; + confirmLabel?: string; +} + +export const UMB_CONFIRM_MODAL_TOKEN = new UmbModalToken('Umb.Modal.Confirm', { + type: 'dialog', +}); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts index e915079b9e..52837950b0 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts @@ -1,6 +1,18 @@ import type { ManifestModal } from '@umbraco-cms/extensions-registry'; const modals: Array = [ + { + type: 'modal', + alias: 'Umb.Modal.Basic', + name: 'Basic Modal', + loader: () => import('./basic/basic-modal.element'), + }, + { + type: 'modal', + alias: 'Umb.Modal.Confirm', + name: 'Confirm Modal', + loader: () => import('./confirm/confirm-modal.element'), + }, { type: 'modal', alias: 'Umb.Modal.IconPicker', @@ -13,12 +25,6 @@ const modals: Array = [ name: 'Link Picker Modal', loader: () => import('./link-picker/link-picker-modal.element'), }, - { - type: 'modal', - alias: 'Umb.Modal.Basic', - name: 'Basic Modal', - loader: () => import('./basic/basic-modal.element'), - }, ]; export const manifests = [...modals]; From 1d11963d0e1b0e670ecff4b7aa6abcdd01ca9fb8 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 16:20:12 +0100 Subject: [PATCH 056/134] append modal element at correct child element --- .../libs/modal/modal-handler.ts | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts index 4dbbb68bf3..742d83c2b1 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts @@ -1,6 +1,6 @@ import type { UUIDialogElement } from '@umbraco-ui/uui'; import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; -import type { UUIModalSidebarElement, UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; +import { UUIModalSidebarElement, UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; import { v4 as uuidv4 } from 'uuid'; import { BehaviorSubject } from 'rxjs'; import { UmbModalConfig, UmbModalType } from './modal.context'; @@ -18,9 +18,11 @@ export class UmbModalHandler { public containerElement: UUIModalDialogElement | UUIModalSidebarElement; - #element = new BehaviorSubject(undefined); + #element = new BehaviorSubject(undefined); public readonly element = this.#element.asObservable(); + #innerElement?: UUIModalSidebarElement | UUIDialogElement; + public key: string; public type: UmbModalType = 'dialog'; public size: UUIModalSidebarSize = 'small'; @@ -57,6 +59,7 @@ export class UmbModalHandler { #createSidebarElement() { const sidebarElement = document.createElement('uui-modal-sidebar'); + this.#innerElement = sidebarElement; sidebarElement.size = this.size; return sidebarElement; } @@ -64,6 +67,7 @@ export class UmbModalHandler { #createDialogElement() { const modalDialogElement = document.createElement('uui-modal-dialog'); const dialogElement: UUIDialogElement = document.createElement('uui-dialog'); + this.#innerElement = dialogElement; modalDialogElement.appendChild(dialogElement); return modalDialogElement; } @@ -100,12 +104,23 @@ export class UmbModalHandler { async (manifest) => { if (manifest) { const element = await this.#createLayoutElement(manifest, data); + this.#appendModalElement(element); this.#element.next(element); - this.containerElement.appendChild(element); } else { + this.#removeModalElement(); this.#element.next(undefined); } } ); } + + #appendModalElement(element: any) { + this.#innerElement?.appendChild(element); + } + + #removeModalElement() { + if (this.#element.getValue()) { + this.#innerElement?.removeChild(this.#element.getValue()); + } + } } From a46d81486effb09e6915a79bc99aef61ee13ca30 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 16:20:27 +0100 Subject: [PATCH 057/134] update all usages of the confirm dialog --- .../libs/entity-action/actions/delete/delete.action.ts | 3 ++- .../libs/entity-action/actions/trash/trash.action.ts | 3 ++- .../dashboard-redirect-management.element.ts | 5 +++-- .../media/media/entity-bulk-actions/trash/trash.action.ts | 3 ++- .../views/created/packages-created-overview.element.ts | 3 ++- .../installed-packages-section-view-item.element.ts | 3 ++- .../views/section-view-examine-indexers.ts | 3 ++- .../published-status/dashboard-published-status.element.ts | 5 +++-- .../extensions/workspace/extension-root-workspace.element.ts | 3 ++- .../input-document-picker/input-document-picker.element.ts | 3 ++- .../input-language-picker/input-language-picker.element.ts | 3 ++- .../input-media-picker/input-media-picker.element.ts | 3 ++- .../input-multiple-text-string-item.element.ts | 3 ++- 13 files changed, 28 insertions(+), 15 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts index 54ce0c66a7..f8379677a8 100644 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts +++ b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts @@ -2,6 +2,7 @@ import { UmbEntityActionBase } from '@umbraco-cms/entity-action'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; +import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; export class UmbDeleteEntityAction< T extends { delete(unique: string): Promise; requestItems(uniques: Array): any } @@ -24,7 +25,7 @@ export class UmbDeleteEntityAction< if (data) { const item = data[0]; - const modalHandler = this.#modalContext.confirm({ + const modalHandler = this.#modalContext.open(UMB_CONFIRM_MODAL_TOKEN, { headline: `Delete ${item.name}`, content: 'Are you sure you want to delete this item?', color: 'danger', diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts index f6b496dada..37c7171d12 100644 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts +++ b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts @@ -2,6 +2,7 @@ import { UmbEntityActionBase } from '@umbraco-cms/entity-action'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; +import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; export class UmbTrashEntityAction< T extends { trash(unique: Array): Promise; requestTreeItems(uniques: Array): any } @@ -24,7 +25,7 @@ export class UmbTrashEntityAction< if (data) { const item = data[0]; - const modalHandler = this.#modalContext?.confirm({ + const modalHandler = this.#modalContext?.open(UMB_CONFIRM_MODAL_TOKEN, { headline: `Trash ${item.name}`, content: 'Are you sure you want to move this item to the recycle bin?', color: 'danger', diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts index d7c9d2089b..764e923f9d 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts @@ -6,6 +6,7 @@ import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../libs/mo import { UmbLitElement } from '@umbraco-cms/element'; import { RedirectManagementResource, RedirectStatusModel, RedirectUrlModel } from '@umbraco-cms/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/resources'; +import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; @customElement('umb-dashboard-redirect-management') export class UmbDashboardRedirectManagementElement extends UmbLitElement { @@ -126,7 +127,7 @@ export class UmbDashboardRedirectManagementElement extends UmbLitElement { } private _removeRedirectHandler(data: RedirectUrlModel) { - const modalHandler = this._modalContext?.confirm({ + const modalHandler = this._modalContext?.open(UMB_CONFIRM_MODAL_TOKEN, { headline: 'Delete', content: html`
@@ -157,7 +158,7 @@ export class UmbDashboardRedirectManagementElement extends UmbLitElement { } private _disableRedirectHandler() { - const modalHandler = this._modalContext?.confirm({ + const modalHandler = this._modalContext?.open(UMB_CONFIRM_MODAL_TOKEN, { headline: 'Disable URL tracker', content: html`Are you sure you want to disable the URL tracker?`, color: 'danger', diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/trash/trash.action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/trash/trash.action.ts index 8865f1dc4d..8e27884609 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/trash/trash.action.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/trash/trash.action.ts @@ -4,6 +4,7 @@ import { UmbEntityBulkActionBase } from '@umbraco-cms/entity-action'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; +import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; export class UmbMediaTrashEntityBulkAction extends UmbEntityBulkActionBase { #modalContext?: UmbModalContext; @@ -25,7 +26,7 @@ export class UmbMediaTrashEntityBulkAction extends UmbEntityBulkActionBase diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/published-status/dashboard-published-status.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/published-status/dashboard-published-status.element.ts index 3a3f2b6e71..3f0743c169 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/published-status/dashboard-published-status.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/published-status/dashboard-published-status.element.ts @@ -8,6 +8,7 @@ import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../libs/mo import { PublishedCacheResource } from '@umbraco-cms/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/resources'; import { UmbLitElement } from '@umbraco-cms/element'; +import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; @customElement('umb-dashboard-published-status') export class UmbDashboardPublishedStatusElement extends UmbLitElement { @@ -82,7 +83,7 @@ export class UmbDashboardPublishedStatusElement extends UmbLitElement { } } private async _onReloadCacheHandler() { - const modalHandler = this._modalContext?.confirm({ + const modalHandler = this._modalContext?.open(UMB_CONFIRM_MODAL_TOKEN, { headline: 'Reload', content: html` Trigger a in-memory and local file cache reload on all servers. `, color: 'danger', @@ -105,7 +106,7 @@ export class UmbDashboardPublishedStatusElement extends UmbLitElement { } private async _onRebuildCacheHandler() { - const modalHandler = this._modalContext?.confirm({ + const modalHandler = this._modalContext?.open(UMB_CONFIRM_MODAL_TOKEN, { headline: 'Rebuild', content: html` Rebuild content in cmsContentNu database table. Expensive.`, color: 'danger', diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/extensions/workspace/extension-root-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/extensions/workspace/extension-root-workspace.element.ts index 9a6d4f5265..83b122d856 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/extensions/workspace/extension-root-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/extensions/workspace/extension-root-workspace.element.ts @@ -4,6 +4,7 @@ import { isManifestElementNameType, umbExtensionsRegistry } from '@umbraco-cms/e import type { ManifestBase } from '@umbraco-cms/models'; import { UmbLitElement } from '@umbraco-cms/element'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; +import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; @customElement('umb-extension-root-workspace') export class UmbExtensionRootWorkspaceElement extends UmbLitElement { @@ -28,7 +29,7 @@ export class UmbExtensionRootWorkspaceElement extends UmbLitElement { } #removeExtension(extension: ManifestBase) { - const modalHandler = this._modalContext?.confirm({ + const modalHandler = this._modalContext?.open(UMB_CONFIRM_MODAL_TOKEN, { headline: 'Unload extension', confirmLabel: 'Unload', content: html`

Are you sure you want to unload the extension ${extension.alias}?

`, diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts index 7cdd428fb4..dc09db6157 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts @@ -10,6 +10,7 @@ import { UmbLitElement } from '@umbraco-cms/element'; import type { DocumentTreeItemModel, FolderTreeItemModel } from '@umbraco-cms/backend-api'; import type { UmbObserverController } from '@umbraco-cms/observable-api'; import { UMB_DOCUMENT_PICKER_MODAL_TOKEN } from 'src/backoffice/documents/documents/modals/document-picker'; +import { UMB_CONFIRM_MODAL_TOKEN } from '../../modals/confirm'; @customElement('umb-input-document-picker') export class UmbInputDocumentPickerElement extends FormControlMixin(UmbLitElement) { @@ -133,7 +134,7 @@ export class UmbInputDocumentPickerElement extends FormControlMixin(UmbLitElemen } private _removeItem(item: FolderTreeItemModel) { - const modalHandler = this._modalContext?.confirm({ + const modalHandler = this._modalContext?.open(UMB_CONFIRM_MODAL_TOKEN, { color: 'danger', headline: `Remove ${item.name}?`, content: 'Are you sure you want to remove this item', diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts index f6e0cb4410..fafde3fd9d 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts @@ -9,6 +9,7 @@ import { UmbChangeEvent } from '@umbraco-cms/events'; import { UmbLitElement } from '@umbraco-cms/element'; import type { LanguageModel } from '@umbraco-cms/backend-api'; import type { UmbObserverController } from '@umbraco-cms/observable-api'; +import { UMB_CONFIRM_MODAL_TOKEN } from '../../modals/confirm'; @customElement('umb-input-language-picker') export class UmbInputLanguagePickerElement extends FormControlMixin(UmbLitElement) { @@ -131,7 +132,7 @@ export class UmbInputLanguagePickerElement extends FormControlMixin(UmbLitElemen } private _removeItem(item: LanguageModel) { - const modalHandler = this._modalContext?.confirm({ + const modalHandler = this._modalContext?.open(UMB_CONFIRM_MODAL_TOKEN, { color: 'danger', headline: `Remove ${item.name}?`, content: 'Are you sure you want to remove this item', diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts index 57a2b1b369..c9b827d0d5 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts @@ -9,6 +9,7 @@ import { UmbLitElement } from '@umbraco-cms/element'; import type { EntityTreeItemModel, FolderTreeItemModel } from '@umbraco-cms/backend-api'; import type { UmbObserverController } from '@umbraco-cms/observable-api'; import { UMB_MEDIA_PICKER_MODAL_TOKEN } from 'src/backoffice/media/media/modals/media-picker'; +import { UMB_CONFIRM_MODAL_TOKEN } from '../../modals/confirm'; @customElement('umb-input-media-picker') export class UmbInputMediaPickerElement extends FormControlMixin(UmbLitElement) { @@ -147,7 +148,7 @@ export class UmbInputMediaPickerElement extends FormControlMixin(UmbLitElement) } private _removeItem(item: FolderTreeItemModel) { - const modalHandler = this._modalContext?.confirm({ + const modalHandler = this._modalContext?.open(UMB_CONFIRM_MODAL_TOKEN, { color: 'danger', headline: `Remove ${item.name}?`, content: 'Are you sure you want to remove this item', diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts index 227d7a1cd3..a4fabcff68 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts @@ -7,6 +7,7 @@ import { UUIInputElement } from '@umbraco-ui/uui'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../../../libs/modal'; import { UmbChangeEvent, UmbInputEvent, UmbDeleteEvent } from '@umbraco-cms/events'; import { UmbLitElement } from '@umbraco-cms/element'; +import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; /** * @element umb-input-multiple-text-string-item @@ -65,7 +66,7 @@ export class UmbInputMultipleTextStringItemElement extends FormControlMixin(UmbL } #onDelete() { - const modalHandler = this._modalContext?.confirm({ + const modalHandler = this._modalContext?.open(UMB_CONFIRM_MODAL_TOKEN, { headline: `Delete ${this.value || 'item'}`, content: 'Are you sure you want to delete this item?', color: 'danger', From be096ceffd812dd25cc865e0ed420eb961009d71 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 16:22:46 +0100 Subject: [PATCH 058/134] remove all refactored methods --- .../libs/modal/modal.context.ts | 100 +----------------- 1 file changed, 1 insertion(+), 99 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 99a1002a5a..a2a1738ba7 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -1,29 +1,14 @@ -// TODO: lazy load -import '../../src/backoffice/shared/modals/confirm/confirm-modal.element'; -import '../../src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element'; -import '../../src/backoffice/media/media/modals/media-picker/media-picker-modal.element'; import './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; -import '../../src/backoffice/users/current-user/modals/current-user/current-user-modal.element'; -import '../../src/backoffice/shared/modals/icon-picker/icon-picker-modal.element'; import '../../src/backoffice/settings/languages/language-picker/language-picker-modal-layout.element'; -import '../../src/backoffice/shared/modals/link-picker/link-picker-modal.element'; -import '../../src/backoffice/shared/modals/basic/basic-modal.element'; import './layouts/search/modal-layout-search.element.ts'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; import { BehaviorSubject } from 'rxjs'; import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; -import type { UmbDocumentPickerModalData } from '../../src/backoffice/documents/documents/modals/document-picker'; -import { UmbChangePasswordModalData } from '../../src/backoffice/users/current-user/modals/change-password'; -import { UmbIconPickerModalData } from '../../src/backoffice/shared/modals/icon-picker'; -import { UmbMediaPickerModalData } from '../../src/backoffice/media/media/modals/media-picker'; -import type { UmbBasicModalData } from '../../src/backoffice/shared/modals/basic'; -import type { UmbLinkPickerModalData } from '../../src/backoffice/shared/modals/link-picker'; -import type { UmbConfirmModalData } from '../../src/backoffice/shared/modals/confirm'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import { UmbModalHandler } from './modal-handler'; import { UmbPickerModalData } from './layouts/modal-layout-picker-base'; -import { UmbModalToken } from './token/modal-token'; +import type { UmbModalToken } from './token/modal-token'; import { UmbContextToken } from '@umbraco-cms/context-api'; import { LanguageModel } from '@umbraco-cms/backend-api'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; @@ -47,39 +32,6 @@ export class UmbModalContext { this.host = host; } - /** - * Opens a Confirm modal - * @public - * @param {UmbConfirmModalData} data - * @return {*} {UmbModalHandler} - * @memberof UmbModalContext - */ - public confirm(data: UmbConfirmModalData): UmbModalHandler { - return this.open('umb-modal-layout-confirm', { data, type: 'dialog' }); - } - - /** - * Opens a Content Picker sidebar modal - * @public - * @param {UmbDocumentPickerModalData} [data] - * @return {*} {UmbModalHandler} - * @memberof UmbModalContext - */ - public documentPicker(data?: UmbDocumentPickerModalData): UmbModalHandler { - return this.open('umb-document-picker-modal', { data, type: 'sidebar', size: 'small' }); - } - - /** - * Opens a Media Picker sidebar modal - * @public - * @param {UmbMediaPickerModalData} [data] - * @return {*} {UmbModalHandler} - * @memberof UmbModalContext - */ - public mediaPicker(data?: UmbMediaPickerModalData): UmbModalHandler { - return this.open('umb-modal-layout-media-picker', { data, type: 'sidebar', size: 'small' }); - } - /** * Opens a Property Editor UI sidebar modal * @public @@ -91,32 +43,6 @@ export class UmbModalContext { return this.open('umb-modal-layout-property-editor-ui-picker', { data, type: 'sidebar', size: 'small' }); } - /** - * Opens an Icon Picker sidebar modal - * @public - * @param {UmbIconPickerModalData} [data] - * @return {*} {UmbModalHandler} - * @memberof UmbModalContext - */ - public iconPicker(data?: UmbIconPickerModalData): UmbModalHandler { - return this.open('umb-modal-layout-icon-picker', { data, type: 'sidebar', size: 'small' }); - } - - /** - * Opens an Link Picker sidebar modal - * @public - * @param {(LinkPickerData & LinkPickerConfig)} [data] - * @return {*} {UmbModalHandler} - * @memberof UmbModalContext - */ - public linkPicker(data?: UmbLinkPickerModalData): UmbModalHandler { - return this.open('umb-modal-layout-link-picker', { - data, - type: 'sidebar', - size: data?.config?.overlaySize || 'small', - }); - } - /** * Opens the user settings sidebar modal * @public @@ -127,16 +53,6 @@ export class UmbModalContext { return this.open('umb-modal-layout-current-user', { type: 'sidebar', size: 'small' }); } - /** - * Opens the change password sidebar modal - * @public - * @return {*} {UmbModalHandler} - * @memberof UmbModalContext - */ - public changePassword(data: UmbChangePasswordModalData): UmbModalHandler { - return this.open('umb-modal-layout-change-password', { data, type: 'dialog' }); - } - /** * Opens a language picker sidebar modal * @public @@ -147,20 +63,6 @@ export class UmbModalContext { return this.open('umb-language-picker-modal-layout', { data, type: 'sidebar' }); } - /** - * Opens a basic sidebar modal to display readonly information - * @public - * @return {*} {UmbModalHandler} - * @memberof UmbModalContext - */ - public openBasic(data: UmbBasicModalData): UmbModalHandler { - return this.open('umb-modal-layout-basic', { - data, - type: 'sidebar', - size: data?.overlaySize || 'small', - }); - } - public search(): UmbModalHandler { const modalHandler = new UmbModalHandler('umb-modal-layout-search'); From 46bb6ace48ccd1fcc70c212d9ccb8be57727e34a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 16:23:57 +0100 Subject: [PATCH 059/134] remove current user method --- src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index a2a1738ba7..24f8126ff6 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -43,16 +43,6 @@ export class UmbModalContext { return this.open('umb-modal-layout-property-editor-ui-picker', { data, type: 'sidebar', size: 'small' }); } - /** - * Opens the user settings sidebar modal - * @public - * @return {*} {UmbModalHandler} - * @memberof UmbModalContext - */ - public userSettings(): UmbModalHandler { - return this.open('umb-modal-layout-current-user', { type: 'sidebar', size: 'small' }); - } - /** * Opens a language picker sidebar modal * @public From 9a0ca23ead66892322db2762fb4897f12d63a0c7 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 19:42:13 +0100 Subject: [PATCH 060/134] register language picker --- .../libs/modal/modal.context.ts | 14 +------------ .../languages/modals/language-picker/index.ts | 20 +++++++++++++++++++ .../language-picker-modal.element.ts} | 15 +++++--------- .../settings/languages/modals/manifests.ts | 0 .../input-language-picker.element.ts | 5 +++-- 5 files changed, 29 insertions(+), 25 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/language-picker/index.ts rename src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/{language-picker/language-picker-modal-layout.element.ts => modals/language-picker/language-picker-modal.element.ts} (79%) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 24f8126ff6..29acc52f4b 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -1,5 +1,5 @@ import './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; -import '../../src/backoffice/settings/languages/language-picker/language-picker-modal-layout.element'; +import '../../src/backoffice/settings/languages/modals/language-picker/language-picker-modal.element'; import './layouts/search/modal-layout-search.element.ts'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; @@ -7,10 +7,8 @@ import { BehaviorSubject } from 'rxjs'; import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import { UmbModalHandler } from './modal-handler'; -import { UmbPickerModalData } from './layouts/modal-layout-picker-base'; import type { UmbModalToken } from './token/modal-token'; import { UmbContextToken } from '@umbraco-cms/context-api'; -import { LanguageModel } from '@umbraco-cms/backend-api'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; export type UmbModalType = 'dialog' | 'sidebar'; @@ -43,16 +41,6 @@ export class UmbModalContext { return this.open('umb-modal-layout-property-editor-ui-picker', { data, type: 'sidebar', size: 'small' }); } - /** - * Opens a language picker sidebar modal - * @public - * @return {*} {UmbModalHandler} - * @memberof UmbModalContext - */ - public languagePicker(data: UmbPickerModalData): UmbModalHandler { - return this.open('umb-language-picker-modal-layout', { data, type: 'sidebar' }); - } - public search(): UmbModalHandler { const modalHandler = new UmbModalHandler('umb-modal-layout-search'); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/language-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/language-picker/index.ts new file mode 100644 index 0000000000..13241af233 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/language-picker/index.ts @@ -0,0 +1,20 @@ +import { LanguageModel } from '@umbraco-cms/backend-api'; +import { UmbModalToken } from 'libs/modal'; + +export interface UmbLanguagePickerModalData { + multiple?: boolean; + selection?: Array; + filter?: (language: LanguageModel) => boolean; +} + +export interface UmbLanguagePickerModalResponse { + selection: Array; +} + +export const UMB_LANGUAGE_PICKER_MODAL_TOKEN = new UmbModalToken( + 'Umb.Modal.LanguagePicker', + { + type: 'sidebar', + size: 'small', + } +); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/language-picker/language-picker-modal-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/language-picker/language-picker-modal.element.ts similarity index 79% rename from src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/language-picker/language-picker-modal-layout.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/language-picker/language-picker-modal.element.ts index 0ad3dbc657..fcd7a13522 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/language-picker/language-picker-modal-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/language-picker/language-picker-modal.element.ts @@ -4,17 +4,12 @@ import { customElement, state } from 'lit/decorators.js'; import { repeat } from 'lit-html/directives/repeat.js'; import { UUIMenuItemElement, UUIMenuItemEvent } from '@umbraco-ui/uui'; import { ifDefined } from 'lit-html/directives/if-defined.js'; -import { UmbLanguageRepository } from '../repository/language.repository'; -import { UmbModalLayoutPickerBase } from '../../../../../libs/modal/layouts/modal-layout-picker-base'; +import { UmbLanguageRepository } from '../../repository/language.repository'; +import { UmbModalLayoutPickerBase } from '../../../../../../libs/modal/layouts/modal-layout-picker-base'; import { LanguageModel } from '@umbraco-cms/backend-api'; -export interface UmbLanguagePickerModalData { - multiple: boolean; - selection: string[]; -} - -@customElement('umb-language-picker-modal-layout') -export class UmbLanguagePickerModalLayoutElement extends UmbModalLayoutPickerBase { +@customElement('umb-language-picker-modal') +export class UmbLanguagePickerModalElement extends UmbModalLayoutPickerBase { static styles = [UUITextStyles, css``]; @state() @@ -72,6 +67,6 @@ export class UmbLanguagePickerModalLayoutElement extends UmbModalLayoutPickerBas declare global { interface HTMLElementTagNameMap { - 'umb-language-picker-modal-layout': UmbLanguagePickerModalLayoutElement; + 'umb-language-picker-modal': UmbLanguagePickerModalElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/manifests.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts index fafde3fd9d..57ef3d4788 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts @@ -10,6 +10,7 @@ import { UmbLitElement } from '@umbraco-cms/element'; import type { LanguageModel } from '@umbraco-cms/backend-api'; import type { UmbObserverController } from '@umbraco-cms/observable-api'; import { UMB_CONFIRM_MODAL_TOKEN } from '../../modals/confirm'; +import { UMB_LANGUAGE_PICKER_MODAL_TOKEN } from 'src/backoffice/settings/languages/modals/language-picker'; @customElement('umb-input-language-picker') export class UmbInputLanguagePickerElement extends FormControlMixin(UmbLitElement) { @@ -120,13 +121,13 @@ export class UmbInputLanguagePickerElement extends FormControlMixin(UmbLitElemen } private _openPicker() { - const modalHandler = this._modalContext?.languagePicker({ + const modalHandler = this._modalContext?.open(UMB_LANGUAGE_PICKER_MODAL_TOKEN, { multiple: this.max === 1 ? false : true, selection: [...this._selectedIsoCodes], filter: this.filter, }); - modalHandler?.onClose().then(({ selection }: any) => { + modalHandler?.onClose().then(({ selection }) => { this._setSelection(selection); }); } From 16a3c51bc0484fea46ec7efbf35ce403050bca8a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 19:45:35 +0100 Subject: [PATCH 061/134] move section picker files --- .../shared/components/input-list-base/input-list-base.ts | 2 +- .../modals/section-picker}/picker-layout-section.element.ts | 2 +- .../shared/modals/section-picker}/picker-layout-section.test.ts | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts/picker-section => src/backoffice/shared/modals/section-picker}/picker-layout-section.element.ts (96%) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts/picker-section => src/backoffice/shared/modals/section-picker}/picker-layout-section.test.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts index 158c645f5b..f478539895 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts @@ -5,7 +5,7 @@ import { UmbPickerModalData } from '../../../../../libs/modal/layouts/modal-layo import { UmbModalContext, UmbModalType, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../libs/modal'; //TODO: These should probably be imported dynamically. -import '../../../../../libs/modal/layouts/picker-section/picker-layout-section.element'; +import '../../modals/section-picker/picker-layout-section.element'; import '../../../../../libs/modal/layouts/picker-user-group/picker-layout-user-group.element'; import '../../../../../libs/modal/layouts/picker-user/picker-layout-user.element'; import { UmbLitElement } from '@umbraco-cms/element'; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-section/picker-layout-section.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/picker-layout-section.element.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-section/picker-layout-section.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/picker-layout-section.element.ts index ff0470d6c7..336235f581 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-section/picker-layout-section.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/picker-layout-section.element.ts @@ -1,7 +1,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; -import { UmbModalLayoutPickerBase } from '../modal-layout-picker-base'; +import { UmbModalLayoutPickerBase } from '../../../../../libs/modal/layouts/modal-layout-picker-base'; import { umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; import type { ManifestSection } from '@umbraco-cms/models'; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-section/picker-layout-section.test.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/picker-layout-section.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-section/picker-layout-section.test.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/picker-layout-section.test.ts From 07b9b2a677cb27ba708835485ac52cb9fc5d25ad Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 19:55:39 +0100 Subject: [PATCH 062/134] register language picker --- .../libs/modal/layouts/modal-layout-picker-base.ts | 1 + src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts | 2 +- .../src/backoffice/shared/modals/manifests.ts | 6 ++++++ .../backoffice/shared/modals/section-picker/indext.ts | 11 +++++++++++ .../section-picker/picker-layout-section.element.ts | 2 ++ 5 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/indext.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-picker-base.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-picker-base.ts index 7c84bd0a43..c7a85b3748 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-picker-base.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-picker-base.ts @@ -1,5 +1,6 @@ import { property } from 'lit/decorators.js'; import { UmbModalLayoutElement } from '..'; +import './modal-layout.element'; export interface UmbPickerModalData { multiple: boolean; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 29acc52f4b..1f91be6846 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -1,6 +1,6 @@ import './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import '../../src/backoffice/settings/languages/modals/language-picker/language-picker-modal.element'; -import './layouts/search/modal-layout-search.element.ts'; +import './layouts/search/modal-layout-search.element'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; import { BehaviorSubject } from 'rxjs'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts index 52837950b0..04774330a8 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts @@ -25,6 +25,12 @@ const modals: Array = [ name: 'Link Picker Modal', loader: () => import('./link-picker/link-picker-modal.element'), }, + { + type: 'modal', + alias: 'Umb.Modal.SectionPicker', + name: 'Section Picker Modal', + loader: () => import('./section-picker/picker-layout-section.element'), + }, ]; export const manifests = [...modals]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/indext.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/indext.ts new file mode 100644 index 0000000000..bb5fcad076 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/indext.ts @@ -0,0 +1,11 @@ +import { UmbModalToken } from 'libs/modal'; + +export interface UmbSectionPickerModalData { + multiple: boolean; + selection: string[]; +} + +export const UMB_SECTION_PICKER_MODAL_TOKEN = new UmbModalToken('Umb.Modal.SectionPicker', { + type: 'sidebar', + size: 'small', +}); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/picker-layout-section.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/picker-layout-section.element.ts index 336235f581..a65f8c2099 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/picker-layout-section.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/picker-layout-section.element.ts @@ -91,6 +91,8 @@ export class UmbPickerLayoutSectionElement extends UmbModalLayoutPickerBase Date: Wed, 8 Mar 2023 19:58:03 +0100 Subject: [PATCH 063/134] move property editor ui files --- src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts | 4 ++-- .../modal-layout-property-editor-ui-picker.element.ts | 2 +- .../modal-layout-property-editor-ui-picker.stories.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts => src/backoffice/shared/property-editors/modals}/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element.ts (98%) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts => src/backoffice/shared/property-editors/modals}/property-editor-ui-picker/modal-layout-property-editor-ui-picker.stories.ts (89%) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 1f91be6846..8a64ec041a 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -1,11 +1,11 @@ -import './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; +import '../../src/backoffice/shared/property-editors/modals/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import '../../src/backoffice/settings/languages/modals/language-picker/language-picker-modal.element'; import './layouts/search/modal-layout-search.element'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; import { BehaviorSubject } from 'rxjs'; import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; -import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; +import type { UmbModalPropertyEditorUIPickerData } from '../../src/backoffice/shared/property-editors/modals/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; import { UmbModalHandler } from './modal-handler'; import type { UmbModalToken } from './token/modal-token'; import { UmbContextToken } from '@umbraco-cms/context-api'; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element.ts index c5004b4497..efdea09e01 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element.ts @@ -4,7 +4,7 @@ import { customElement, property, state } from 'lit/decorators.js'; import { repeat } from 'lit/directives/repeat.js'; import { groupBy } from 'lodash-es'; import type { UUIInputEvent } from '@umbraco-ui/uui'; -import type { UmbModalHandler } from '../../modal-handler'; +import type { UmbModalHandler } from '../../../../../../libs/modal/modal-handler'; import type { ManifestPropertyEditorUI } from '@umbraco-cms/models'; import { umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; import { UmbLitElement } from '@umbraco-cms/element'; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/modal-layout-property-editor-ui-picker.stories.ts similarity index 89% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.stories.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/modal-layout-property-editor-ui-picker.stories.ts index f6c428375f..0df9fce8d5 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/modal-layout-property-editor-ui-picker.stories.ts @@ -6,7 +6,7 @@ import type { } from './modal-layout-property-editor-ui-picker.element'; import './modal-layout-property-editor-ui-picker.element'; -import '../../../../src/backoffice/shared/components/body-layout/body-layout.element'; +import '../../../components/body-layout/body-layout.element'; export default { title: 'API/Modals/Layouts/Property Editor UI Picker', From a8f28f8e2913e1195b5118c5b074e0d03cd8a3be Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 19:58:51 +0100 Subject: [PATCH 064/134] rename files --- src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts | 4 ++-- ....element.ts => property-editor-ui-picker-modal.element.ts} | 0 ....stories.ts => property-editor-ui-picker-modal.stories.ts} | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) rename src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/{modal-layout-property-editor-ui-picker.element.ts => property-editor-ui-picker-modal.element.ts} (100%) rename src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/{modal-layout-property-editor-ui-picker.stories.ts => property-editor-ui-picker-modal.stories.ts} (85%) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 8a64ec041a..089b3afe44 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -1,11 +1,11 @@ -import '../../src/backoffice/shared/property-editors/modals/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; +import '../../src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element'; import '../../src/backoffice/settings/languages/modals/language-picker/language-picker-modal.element'; import './layouts/search/modal-layout-search.element'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; import { BehaviorSubject } from 'rxjs'; import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; -import type { UmbModalPropertyEditorUIPickerData } from '../../src/backoffice/shared/property-editors/modals/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; +import type { UmbModalPropertyEditorUIPickerData } from '../../src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element'; import { UmbModalHandler } from './modal-handler'; import type { UmbModalToken } from './token/modal-token'; import { UmbContextToken } from '@umbraco-cms/context-api'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/modal-layout-property-editor-ui-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts similarity index 85% rename from src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/modal-layout-property-editor-ui-picker.stories.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts index 0df9fce8d5..aeb7eba4bc 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/modal-layout-property-editor-ui-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts @@ -3,8 +3,8 @@ import { html } from 'lit'; import type { UmbModalLayoutPropertyEditorUIPickerElement, UmbModalPropertyEditorUIPickerData, -} from './modal-layout-property-editor-ui-picker.element'; -import './modal-layout-property-editor-ui-picker.element'; +} from './property-editor-ui-picker-modal.element'; +import './property-editor-ui-picker-modal.element'; import '../../../components/body-layout/body-layout.element'; From 3ee3fdff8d575ad8e51b9b2a75fd578c528b91be Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 20:00:47 +0100 Subject: [PATCH 065/134] rename element class and element name --- .../property-editor-ui-picker-modal.element.ts | 10 +++++----- .../property-editor-ui-picker-modal.stories.ts | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts index efdea09e01..47e717ec86 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts @@ -17,10 +17,8 @@ export interface UmbModalPropertyEditorUIPickerData { interface GroupedPropertyEditorUIs { [key: string]: Array; } - -// TODO: make use of UmbPickerLayoutBase -@customElement('umb-modal-layout-property-editor-ui-picker') -export class UmbModalLayoutPropertyEditorUIPickerElement extends UmbLitElement { +@customElement('umb-property-editor-ui-picker-modal') +export class UmbPropertyEditorUIPickerModalElement extends UmbLitElement { static styles = [ UUITextStyles, css` @@ -198,8 +196,10 @@ export class UmbModalLayoutPropertyEditorUIPickerElement extends UmbLitElement { } } +export default UmbPropertyEditorUIPickerModalElement; + declare global { interface HTMLElementTagNameMap { - 'umb-modal-layout-property-editor-ui-picker': UmbModalLayoutPropertyEditorUIPickerElement; + 'umb-property-editor-ui-picker-modal': UmbPropertyEditorUIPickerModalElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts index aeb7eba4bc..e9246d16a0 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts @@ -1,7 +1,7 @@ import { Meta, Story } from '@storybook/web-components'; import { html } from 'lit'; import type { - UmbModalLayoutPropertyEditorUIPickerElement, + UmbPropertyEditorUIPickerModalElement, UmbModalPropertyEditorUIPickerData, } from './property-editor-ui-picker-modal.element'; import './property-editor-ui-picker-modal.element'; @@ -16,6 +16,6 @@ export default { const data: UmbModalPropertyEditorUIPickerData = { selection: [] }; -export const Overview: Story = () => html` +export const Overview: Story = () => html` `; From 3043c4f67b9cc23c5cf7f694cdbcea9eeb471f12 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 20:21:47 +0100 Subject: [PATCH 066/134] register property editor ui picker --- .../libs/modal/modal.context.ts | 14 -------------- .../data-type-workspace-view-edit.element.ts | 3 ++- .../src/backoffice/shared/index.ts | 6 ++---- .../shared/property-editors/manifests.ts | 5 +++++ .../shared/property-editors/modals/manifests.ts | 12 ++++++++++++ .../modals/property-editor-ui-picker/index.ts | 14 ++++++++++++++ .../property-editor-ui-picker-modal.element.ts | 8 ++------ .../property-editor-ui-picker-modal.stories.ts | 16 +++++++--------- 8 files changed, 44 insertions(+), 34 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/index.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 089b3afe44..ecdc6985b8 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -1,11 +1,8 @@ -import '../../src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element'; -import '../../src/backoffice/settings/languages/modals/language-picker/language-picker-modal.element'; import './layouts/search/modal-layout-search.element'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; import { BehaviorSubject } from 'rxjs'; import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; -import type { UmbModalPropertyEditorUIPickerData } from '../../src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element'; import { UmbModalHandler } from './modal-handler'; import type { UmbModalToken } from './token/modal-token'; import { UmbContextToken } from '@umbraco-cms/context-api'; @@ -30,17 +27,6 @@ export class UmbModalContext { this.host = host; } - /** - * Opens a Property Editor UI sidebar modal - * @public - * @param {UmbModalPropertyEditorUIPickerData} [data] - * @return {*} {UmbModalHandler} - * @memberof UmbModalContext - */ - public propertyEditorUIPicker(data?: UmbModalPropertyEditorUIPickerData): UmbModalHandler { - return this.open('umb-modal-layout-property-editor-ui-picker', { data, type: 'sidebar', size: 'small' }); - } - public search(): UmbModalHandler { const modalHandler = new UmbModalHandler('umb-modal-layout-search'); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/views/edit/data-type-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/views/edit/data-type-workspace-view-edit.element.ts index bbdc89f5b6..3ca8924d6d 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/views/edit/data-type-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/views/edit/data-type-workspace-view-edit.element.ts @@ -9,6 +9,7 @@ import { umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; import '../../../../../shared/property-editors/shared/property-editor-config/property-editor-config.element'; import '../../../../../shared/components/ref-property-editor-ui/ref-property-editor-ui.element'; +import { UMB_PROPERTY_EDITOR_UI_PICKER_MODAL_TOKEN } from 'src/backoffice/shared/property-editors/modals/property-editor-ui-picker'; @customElement('umb-data-type-workspace-view-edit') export class UmbDataTypeWorkspaceViewEditElement extends UmbLitElement { @@ -100,7 +101,7 @@ export class UmbDataTypeWorkspaceViewEditElement extends UmbLitElement { private _openPropertyEditorUIPicker() { if (!this._dataType) return; - const modalHandler = this._modalContext?.propertyEditorUIPicker({ + const modalHandler = this._modalContext?.open(UMB_PROPERTY_EDITOR_UI_PICKER_MODAL_TOKEN, { selection: this._propertyEditorUiAlias ? [this._propertyEditorUiAlias] : [], }); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/index.ts index d5239f165c..71ca8b6aa6 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/index.ts @@ -1,8 +1,7 @@ import './components'; import { manifests as propertyActionManifests } from './property-actions/manifests'; -import { manifests as propertyEditorModelManifests } from './property-editors/models/manifests'; -import { manifests as propertyEditorUIManifests } from './property-editors/uis/manifests'; +import { manifests as propertyEditorManifests } from './property-editors/manifests'; import { manifests as collectionViewManifests } from './collection/views/manifests'; import { manifests as modalManifests } from './modals/manifests'; @@ -18,8 +17,7 @@ const registerExtensions = (manifests: Array) => { registerExtensions([ ...propertyActionManifests, - ...propertyEditorModelManifests, - ...propertyEditorUIManifests, + ...propertyEditorManifests, ...collectionViewManifests, ...modalManifests, ]); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/manifests.ts new file mode 100644 index 0000000000..38777fdc5c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/manifests.ts @@ -0,0 +1,5 @@ +import { manifests as propertyEditorModelManifests } from './models/manifests'; +import { manifests as propertyEditorUIManifests } from './uis/manifests'; +import { manifests as modalManifests } from './modals/manifests'; + +export const manifests = [...propertyEditorModelManifests, ...propertyEditorUIManifests, ...modalManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/manifests.ts new file mode 100644 index 0000000000..34fdaa64db --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/manifests.ts @@ -0,0 +1,12 @@ +import type { ManifestModal } from '@umbraco-cms/extensions-registry'; + +const modals: Array = [ + { + type: 'modal', + alias: 'Umb.Modal.PropertyEditorUIPicker', + name: 'Property Editor UI Picker Modal', + loader: () => import('./property-editor-ui-picker/property-editor-ui-picker-modal.element'), + }, +]; + +export const manifests = [...modals]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/index.ts new file mode 100644 index 0000000000..fc01389f3a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/index.ts @@ -0,0 +1,14 @@ +import { UmbModalToken } from '@umbraco-cms/modal'; + +export interface UmbPropertyEditorUIPickerModalData { + selection?: Array; + submitLabel?: string; +} + +export const UMB_PROPERTY_EDITOR_UI_PICKER_MODAL_TOKEN = new UmbModalToken( + 'Umb.Modal.PropertyEditorUIPicker', + { + type: 'sidebar', + size: 'small', + } +); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts index 47e717ec86..899632a230 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts @@ -8,11 +8,7 @@ import type { UmbModalHandler } from '../../../../../../libs/modal/modal-handler import type { ManifestPropertyEditorUI } from '@umbraco-cms/models'; import { umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; import { UmbLitElement } from '@umbraco-cms/element'; - -export interface UmbModalPropertyEditorUIPickerData { - selection?: Array; - submitLabel?: string; -} +import { UmbPropertyEditorUIPickerModalData } from '.'; interface GroupedPropertyEditorUIs { [key: string]: Array; @@ -87,7 +83,7 @@ export class UmbPropertyEditorUIPickerModalElement extends UmbLitElement { modalHandler?: UmbModalHandler; @property({ type: Object }) - data?: UmbModalPropertyEditorUIPickerData; + data?: UmbPropertyEditorUIPickerModalData; @state() private _groupedPropertyEditorUIs: GroupedPropertyEditorUIs = {}; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts index e9246d16a0..16d9f48b9d 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts @@ -1,21 +1,19 @@ import { Meta, Story } from '@storybook/web-components'; import { html } from 'lit'; -import type { - UmbPropertyEditorUIPickerModalElement, - UmbModalPropertyEditorUIPickerData, -} from './property-editor-ui-picker-modal.element'; -import './property-editor-ui-picker-modal.element'; +import type { UmbPropertyEditorUIPickerModalElement } from './property-editor-ui-picker-modal.element'; +import type { UmbPropertyEditorUIPickerModalData } from './'; +import './property-editor-ui-picker-modal.element'; import '../../../components/body-layout/body-layout.element'; export default { title: 'API/Modals/Layouts/Property Editor UI Picker', - component: 'umb-modal-layout-property-editor-ui-picker', - id: 'modal-layout-property-editor-ui-picker', + component: 'umb-property-editor-ui-picker-modal', + id: 'umb-property-editor-ui-picker-modal', } as Meta; -const data: UmbModalPropertyEditorUIPickerData = { selection: [] }; +const data: UmbPropertyEditorUIPickerModalData = { selection: [] }; export const Overview: Story = () => html` - + `; From d245e223e40ae39c5ec0b3d161e9d81375fd38ab Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 20:24:37 +0100 Subject: [PATCH 067/134] rename section picker files --- .../shared/components/input-list-base/input-list-base.ts | 2 +- .../src/backoffice/shared/modals/manifests.ts | 2 +- ...ayout-section.element.ts => section-picker-modal.element.ts} | 0 .../{picker-layout-section.test.ts => section-picker.test.ts} | 0 4 files changed, 2 insertions(+), 2 deletions(-) rename src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/{picker-layout-section.element.ts => section-picker-modal.element.ts} (100%) rename src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/{picker-layout-section.test.ts => section-picker.test.ts} (100%) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts index f478539895..5906a8cea0 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts @@ -5,7 +5,7 @@ import { UmbPickerModalData } from '../../../../../libs/modal/layouts/modal-layo import { UmbModalContext, UmbModalType, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../libs/modal'; //TODO: These should probably be imported dynamically. -import '../../modals/section-picker/picker-layout-section.element'; +import '../../modals/section-picker/section-picker-modal.element'; import '../../../../../libs/modal/layouts/picker-user-group/picker-layout-user-group.element'; import '../../../../../libs/modal/layouts/picker-user/picker-layout-user.element'; import { UmbLitElement } from '@umbraco-cms/element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts index 04774330a8..d84c7f2eab 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts @@ -29,7 +29,7 @@ const modals: Array = [ type: 'modal', alias: 'Umb.Modal.SectionPicker', name: 'Section Picker Modal', - loader: () => import('./section-picker/picker-layout-section.element'), + loader: () => import('./section-picker/section-picker-modal.element'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/picker-layout-section.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/section-picker-modal.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/picker-layout-section.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/section-picker-modal.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/picker-layout-section.test.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/section-picker.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/picker-layout-section.test.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/section-picker.test.ts From c2a41cd427f50eeb9cf423bb2fdec1a9c5d46081 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 20:32:54 +0100 Subject: [PATCH 068/134] rename section picker --- .../input-list-base/input-list-base.ts | 17 +++++++---------- .../input-section/input-section.element.ts | 3 ++- .../section-picker/{indext.ts => index.ts} | 0 .../section-picker-modal.element.ts | 8 ++++---- 4 files changed, 13 insertions(+), 15 deletions(-) rename src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/{indext.ts => index.ts} (100%) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts index 5906a8cea0..e283e46cf6 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts @@ -2,7 +2,7 @@ import { html } from 'lit'; import { property } from 'lit/decorators.js'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; import { UmbPickerModalData } from '../../../../../libs/modal/layouts/modal-layout-picker-base'; -import { UmbModalContext, UmbModalType, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../libs/modal'; +import { UmbModalContext, UmbModalToken, UmbModalType, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../libs/modal'; //TODO: These should probably be imported dynamically. import '../../modals/section-picker/section-picker-modal.element'; @@ -24,7 +24,7 @@ export class UmbInputListBase extends UmbLitElement { @property({ type: String }) public modalSize: UUIModalSidebarSize = 'small'; - protected pickerLayout?: string; + protected pickerToken?: UmbModalToken; private _modalContext?: UmbModalContext; constructor() { @@ -35,16 +35,13 @@ export class UmbInputListBase extends UmbLitElement { } private _openPicker() { - if (!this.pickerLayout) return; + if (!this.pickerToken) return; - const modalHandler = this._modalContext?.open(this.pickerLayout, { - type: this.modalType, - size: this.modalSize, - data: { - multiple: this.multiple, - selection: this.value, - }, + const modalHandler = this._modalContext?.open(this.pickerToken, { + multiple: this.multiple, + selection: this.value, }); + modalHandler?.onClose().then((data: UmbPickerModalData) => { if (data) { this.value = data.selection; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-section/input-section.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-section/input-section.element.ts index 70192a1689..a68fe5ee37 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-section/input-section.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-section/input-section.element.ts @@ -2,6 +2,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, html, nothing } from 'lit'; import { customElement, state } from 'lit/decorators.js'; import { UmbInputListBase } from '../input-list-base/input-list-base'; +import { UMB_SECTION_PICKER_MODAL_TOKEN } from '../../modals/section-picker'; import type { ManifestSection } from '@umbraco-cms/models'; import { umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; @@ -41,7 +42,7 @@ export class UmbInputPickerSectionElement extends UmbInputListBase { connectedCallback(): void { super.connectedCallback(); - this.pickerLayout = 'umb-picker-layout-section'; + this.pickerToken = UMB_SECTION_PICKER_MODAL_TOKEN; this._observeSections(); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/indext.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/indext.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/section-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/section-picker-modal.element.ts index a65f8c2099..165e23d403 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/section-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/section-picker-modal.element.ts @@ -5,8 +5,8 @@ import { UmbModalLayoutPickerBase } from '../../../../../libs/modal/layouts/moda import { umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; import type { ManifestSection } from '@umbraco-cms/models'; -@customElement('umb-picker-layout-section') -export class UmbPickerLayoutSectionElement extends UmbModalLayoutPickerBase { +@customElement('umb-section-picker-modal') +export class UmbSectionPickerModalElement extends UmbModalLayoutPickerBase { static styles = [ UUITextStyles, css` @@ -91,10 +91,10 @@ export class UmbPickerLayoutSectionElement extends UmbModalLayoutPickerBase Date: Wed, 8 Mar 2023 20:36:08 +0100 Subject: [PATCH 069/134] move user picker files --- .../shared/components/input-list-base/input-list-base.ts | 2 +- .../users/modals}/picker-user/picker-layout-user.element.ts | 4 ++-- .../users/modals}/picker-user/picker-layout-user.test.ts | 0 3 files changed, 3 insertions(+), 3 deletions(-) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts => src/backoffice/users/users/modals}/picker-user/picker-layout-user.element.ts (96%) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts => src/backoffice/users/users/modals}/picker-user/picker-layout-user.test.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts index e283e46cf6..7cdf7bb7d6 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts @@ -7,7 +7,7 @@ import { UmbModalContext, UmbModalToken, UmbModalType, UMB_MODAL_CONTEXT_TOKEN } //TODO: These should probably be imported dynamically. import '../../modals/section-picker/section-picker-modal.element'; import '../../../../../libs/modal/layouts/picker-user-group/picker-layout-user-group.element'; -import '../../../../../libs/modal/layouts/picker-user/picker-layout-user.element'; +import '../../../users/users/modals/picker-user/picker-layout-user.element'; import { UmbLitElement } from '@umbraco-cms/element'; /** TODO: Make use of UUI FORM Mixin, to make it easily take part of a form. */ diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-user/picker-layout-user.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/picker-user/picker-layout-user.element.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-user/picker-layout-user.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/picker-user/picker-layout-user.element.ts index 144576a292..074cd24bca 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-user/picker-layout-user.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/picker-user/picker-layout-user.element.ts @@ -1,8 +1,8 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; -import { UmbModalLayoutPickerBase } from '../modal-layout-picker-base'; -import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../../../src/backoffice/users/users/user.store'; +import { UmbModalLayoutPickerBase } from '../../../../../../libs/modal/layouts/modal-layout-picker-base'; +import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../user.store'; import type { UserDetails } from '@umbraco-cms/models'; @customElement('umb-picker-layout-user') diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-user/picker-layout-user.test.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/picker-user/picker-layout-user.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-user/picker-layout-user.test.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/picker-user/picker-layout-user.test.ts From 15ab9957d12552d12a0232a5a4ec1f5839cf0cb5 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 20:36:31 +0100 Subject: [PATCH 070/134] rename user picker folder --- .../{picker-user => user-picker}/picker-layout-user.element.ts | 0 .../{picker-user => user-picker}/picker-layout-user.test.ts | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/{picker-user => user-picker}/picker-layout-user.element.ts (100%) rename src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/{picker-user => user-picker}/picker-layout-user.test.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/picker-user/picker-layout-user.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/picker-layout-user.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/picker-user/picker-layout-user.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/picker-layout-user.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/picker-user/picker-layout-user.test.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/picker-layout-user.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/picker-user/picker-layout-user.test.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/picker-layout-user.test.ts From d38e20aee5d629c3a1b8532475f5e046745a3717 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 20:38:17 +0100 Subject: [PATCH 071/134] rename user picker files --- .../shared/components/input-list-base/input-list-base.ts | 2 +- ...cker-layout-user.element.ts => user-picker-modal.element.ts} | 0 .../{picker-layout-user.test.ts => user-picker-modal.test.ts} | 0 3 files changed, 1 insertion(+), 1 deletion(-) rename src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/{picker-layout-user.element.ts => user-picker-modal.element.ts} (100%) rename src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/{picker-layout-user.test.ts => user-picker-modal.test.ts} (100%) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts index 7cdf7bb7d6..e0e214a79e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts @@ -7,7 +7,7 @@ import { UmbModalContext, UmbModalToken, UmbModalType, UMB_MODAL_CONTEXT_TOKEN } //TODO: These should probably be imported dynamically. import '../../modals/section-picker/section-picker-modal.element'; import '../../../../../libs/modal/layouts/picker-user-group/picker-layout-user-group.element'; -import '../../../users/users/modals/picker-user/picker-layout-user.element'; +import '../../../users/users/modals/user-picker/user-picker-modal.element'; import { UmbLitElement } from '@umbraco-cms/element'; /** TODO: Make use of UUI FORM Mixin, to make it easily take part of a form. */ diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/picker-layout-user.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/user-picker-modal.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/picker-layout-user.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/user-picker-modal.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/picker-layout-user.test.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/user-picker-modal.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/picker-layout-user.test.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/user-picker-modal.test.ts From 20580ff1130b4ac02eb2ec2c1e945764ef435b07 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 8 Mar 2023 20:55:24 +0100 Subject: [PATCH 072/134] register user picker --- .../components/input-user/input-user.element.ts | 3 ++- .../src/backoffice/users/users/manifests.ts | 3 ++- .../src/backoffice/users/users/modals/manifests.ts | 12 ++++++++++++ .../users/users/modals/user-picker/index.ts | 8 ++++++++ .../modals/user-picker/user-picker-modal.element.ts | 8 +++++--- 5 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-user/input-user.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-user/input-user.element.ts index cb9e22bd42..d2ce349ff7 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-user/input-user.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-user/input-user.element.ts @@ -4,6 +4,7 @@ import { customElement, state } from 'lit/decorators.js'; import { UmbInputListBase } from '../input-list-base/input-list-base'; import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../../users/users/user.store'; import type { UserEntity } from '@umbraco-cms/models'; +import { UMB_USER_PICKER_MODAL_TOKEN } from 'src/backoffice/users/users/modals/user-picker'; @customElement('umb-input-user') export class UmbPickerUserElement extends UmbInputListBase { @@ -38,7 +39,7 @@ export class UmbPickerUserElement extends UmbInputListBase { connectedCallback(): void { super.connectedCallback(); - this.pickerLayout = 'umb-picker-layout-user'; + this.pickerToken = UMB_USER_PICKER_MODAL_TOKEN; this.consumeContext(UMB_USER_STORE_CONTEXT_TOKEN, (userStore) => { this._userStore = userStore; this._observeUser(); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/manifests.ts index ea4ed7ce8a..d979a95281 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/manifests.ts @@ -1,3 +1,4 @@ import { manifests as workspaceManifests } from './workspace/manifests'; +import { manifests as modalManifests } from './modals/manifests'; -export const manifests = [...workspaceManifests]; +export const manifests = [...workspaceManifests, ...modalManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/manifests.ts new file mode 100644 index 0000000000..a73490d0c1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/manifests.ts @@ -0,0 +1,12 @@ +import type { ManifestModal } from '@umbraco-cms/extensions-registry'; + +const modals: Array = [ + { + type: 'modal', + alias: 'Umb.Modal.UserPicker', + name: 'User Picker Modal', + loader: () => import('./user-picker/user-picker-modal.element'), + }, +]; + +export const manifests = [...modals]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/index.ts new file mode 100644 index 0000000000..8fa7b90359 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/index.ts @@ -0,0 +1,8 @@ +import type { UserDetails } from '@umbraco-cms/models'; +import { UmbModalToken } from 'libs/modal'; +import type { UmbPickerModalData } from 'libs/modal/layouts/modal-layout-picker-base'; + +export const UMB_USER_PICKER_MODAL_TOKEN = new UmbModalToken>('Umb.Modal.UserPicker', { + type: 'sidebar', + size: 'small', +}); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/user-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/user-picker-modal.element.ts index 074cd24bca..52ad865a0b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/user-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/user-picker-modal.element.ts @@ -5,8 +5,8 @@ import { UmbModalLayoutPickerBase } from '../../../../../../libs/modal/layouts/m import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../user.store'; import type { UserDetails } from '@umbraco-cms/models'; -@customElement('umb-picker-layout-user') -export class UmbPickerLayoutUserElement extends UmbModalLayoutPickerBase { +@customElement('umb-user-picker-modal') +export class UmbUserPickerModalElement extends UmbModalLayoutPickerBase { static styles = [ UUITextStyles, css` @@ -105,8 +105,10 @@ export class UmbPickerLayoutUserElement extends UmbModalLayoutPickerBase Date: Thu, 9 Mar 2023 09:26:48 +0100 Subject: [PATCH 073/134] move user group picker --- .../shared/components/input-list-base/input-list-base.ts | 2 +- .../picker-user-group/picker-layout-user-group.element.ts | 6 +++--- .../picker-user-group/picker-layout-user-group.test.ts | 0 3 files changed, 4 insertions(+), 4 deletions(-) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts => src/backoffice/users/user-groups/modals}/picker-user-group/picker-layout-user-group.element.ts (90%) rename src/Umbraco.Web.UI.Client/{libs/modal/layouts => src/backoffice/users/user-groups/modals}/picker-user-group/picker-layout-user-group.test.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts index e0e214a79e..a08e7e0e6b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts @@ -6,7 +6,7 @@ import { UmbModalContext, UmbModalToken, UmbModalType, UMB_MODAL_CONTEXT_TOKEN } //TODO: These should probably be imported dynamically. import '../../modals/section-picker/section-picker-modal.element'; -import '../../../../../libs/modal/layouts/picker-user-group/picker-layout-user-group.element'; +import '../../../users/user-groups/modals/picker-user-group/picker-layout-user-group.element'; import '../../../users/users/modals/user-picker/user-picker-modal.element'; import { UmbLitElement } from '@umbraco-cms/element'; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-user-group/picker-layout-user-group.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/picker-user-group/picker-layout-user-group.element.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-user-group/picker-layout-user-group.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/picker-user-group/picker-layout-user-group.element.ts index 22a3dd7b4e..2c54d0535b 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-user-group/picker-layout-user-group.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/picker-user-group/picker-layout-user-group.element.ts @@ -1,9 +1,9 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; -import { UmbModalLayoutPickerBase } from '../modal-layout-picker-base'; -import { UMB_USER_GROUP_STORE_CONTEXT_TOKEN } from '../../../../src/backoffice/users/user-groups/user-group.store'; -import type { UmbUserGroupStore } from '../../../../src/backoffice/users/user-groups/user-group.store'; +import { UmbModalLayoutPickerBase } from '../../../../../../libs/modal/layouts/modal-layout-picker-base'; +import { UMB_USER_GROUP_STORE_CONTEXT_TOKEN } from '../../user-group.store'; +import type { UmbUserGroupStore } from '../../user-group.store'; import type { UserGroupDetails } from '@umbraco-cms/models'; @customElement('umb-picker-layout-user-group') diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-user-group/picker-layout-user-group.test.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/picker-user-group/picker-layout-user-group.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/picker-user-group/picker-layout-user-group.test.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/picker-user-group/picker-layout-user-group.test.ts From c63d71e1ddfc9a26cf98bb13e51c9fb04924ee80 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 9 Mar 2023 09:31:55 +0000 Subject: [PATCH 074/134] change name of mock user --- src/Umbraco.Web.UI.Client/src/core/mocks/data/users.data.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/core/mocks/data/users.data.ts b/src/Umbraco.Web.UI.Client/src/core/mocks/data/users.data.ts index ae17f76390..2ac21363a2 100644 --- a/src/Umbraco.Web.UI.Client/src/core/mocks/data/users.data.ts +++ b/src/Umbraco.Web.UI.Client/src/core/mocks/data/users.data.ts @@ -53,7 +53,7 @@ export const data: Array = [ contentStartNodes: [], mediaStartNodes: [], icon: 'umb:user', - name: 'Lurleen Rozycki', + name: 'Lasse Fredslund', email: 'lrozycki0@technorati.com', language: 'Bosnian', status: 'invited', From e52dafc86f5b3d6f51f8fc362ccfe96c933692a5 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 13:57:04 +0100 Subject: [PATCH 075/134] manual merges --- src/Umbraco.Web.UI.Client/libs/modal/index.ts | 1 + .../modals/language-picker/language-picker-modal.element.ts | 2 +- .../debug/debug-modal.element.ts} | 6 +++--- .../shared/components/debug/modals/debug/index.ts | 0 .../modals/section-picker/section-picker-modal.element.ts | 2 +- src/Umbraco.Web.UI.Client/web-test-runner.config.mjs | 4 ++-- 6 files changed, 8 insertions(+), 7 deletions(-) rename src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/{debug.modal.element.ts => modals/debug/debug-modal.element.ts} (89%) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/modals/debug/index.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/index.ts b/src/Umbraco.Web.UI.Client/libs/modal/index.ts index 4dc9d1d107..3085b2f3fa 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/index.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/index.ts @@ -1,4 +1,5 @@ export * from './modal.context'; export * from './modal-handler'; export * from './layouts/modal-layout.element'; +export * from './layouts/modal-layout-picker-base'; export * from './token/modal-token'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/language-picker/language-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/language-picker/language-picker-modal.element.ts index fcd7a13522..7063fe673e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/language-picker/language-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/language-picker/language-picker-modal.element.ts @@ -5,7 +5,7 @@ import { repeat } from 'lit-html/directives/repeat.js'; import { UUIMenuItemElement, UUIMenuItemEvent } from '@umbraco-ui/uui'; import { ifDefined } from 'lit-html/directives/if-defined.js'; import { UmbLanguageRepository } from '../../repository/language.repository'; -import { UmbModalLayoutPickerBase } from '../../../../../../libs/modal/layouts/modal-layout-picker-base'; +import { UmbModalLayoutPickerBase } from '@umbraco-cms/modal'; import { LanguageModel } from '@umbraco-cms/backend-api'; @customElement('umb-language-picker-modal') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/debug.modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/modals/debug/debug-modal.element.ts similarity index 89% rename from src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/debug.modal.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/modals/debug/debug-modal.element.ts index d9d370aaf0..741f9eacc0 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/debug.modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/modals/debug/debug-modal.element.ts @@ -7,8 +7,8 @@ export interface UmbDebugModalData { content: TemplateResult | string; } -@customElement('umb-debug-modal-layout') -export default class UmbDebugModalLayout extends UmbModalLayoutElement { +@customElement('umb-debug-modal') +export default class UmbDebugModalElement extends UmbModalLayoutElement { static styles = [ UUITextStyles, css` @@ -74,6 +74,6 @@ export default class UmbDebugModalLayout extends UmbModalLayoutElement Date: Thu, 9 Mar 2023 15:04:34 +0100 Subject: [PATCH 076/134] register new debug modal --- .../shared/components/debug/debug.element.ts | 6 +++--- .../shared/components/debug/manifests.ts | 12 ++++++++++++ .../debug/modals/debug/debug-modal.element.ts | 13 +++++-------- .../shared/components/debug/modals/debug/index.ts | 14 ++++++++++++++ .../src/backoffice/shared/components/index.ts | 7 +++++-- .../src/backoffice/shared/index.ts | 4 ++-- .../property-editor-ui-document-picker.element.ts | 1 + 7 files changed, 42 insertions(+), 15 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/debug.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/debug.element.ts index 2b1bb82b52..5badf72417 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/debug.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/debug.element.ts @@ -1,7 +1,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html, nothing, TemplateResult } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; -import { UMB_BASIC_MODAL_TOKEN } from '../../modals/basic'; +import { UMB_CONTEXT_DEBUGGER_MODAL_TOKEN } from './modals/debug'; import { UmbContextDebugRequest } from '@umbraco-cms/context-api'; import { UmbLitElement } from '@umbraco-cms/element'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; @@ -103,8 +103,8 @@ export class UmbDebug extends UmbLitElement { } private _openDialog() { - this._modalContext?.open(UMB_DEBUG_MODAL_TOKEN, { - content: this._renderContextAliases(), + this._modalContext?.open(UMB_CONTEXT_DEBUGGER_MODAL_TOKEN, { + content: html`${this._renderContextAliases()}`, }); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/manifests.ts new file mode 100644 index 0000000000..2b82b6cb72 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/manifests.ts @@ -0,0 +1,12 @@ +import type { ManifestModal } from '@umbraco-cms/extensions-registry'; + +const modals: Array = [ + { + type: 'modal', + alias: 'Umb.Modal.ContextDebugger', + name: 'Context Debugger Modal', + loader: () => import('./modals/debug/debug-modal.element'), + }, +]; + +export const manifests = [...modals]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/modals/debug/debug-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/modals/debug/debug-modal.element.ts index 741f9eacc0..d46d4695b8 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/modals/debug/debug-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/modals/debug/debug-modal.element.ts @@ -1,14 +1,11 @@ -import { css, html, TemplateResult } from 'lit'; +import { css, html } from 'lit'; import { customElement } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css'; import { UmbModalLayoutElement } from '@umbraco-cms/modal'; +import { UmbContextDebuggerModalData } from '.'; -export interface UmbDebugModalData { - content: TemplateResult | string; -} - -@customElement('umb-debug-modal') -export default class UmbDebugModalElement extends UmbModalLayoutElement { +@customElement('umb-context-debugger-modal') +export default class UmbContextDebuggerModalElement extends UmbModalLayoutElement { static styles = [ UUITextStyles, css` @@ -74,6 +71,6 @@ export default class UmbDebugModalElement extends UmbModalLayoutElement( + 'Umb.Modal.ContextDebugger', + { + type: 'sidebar', + size: 'small', + } +); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/index.ts index cb63f61786..cfd0865a25 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/index.ts @@ -1,6 +1,7 @@ -//TODO: we need to figure out what components should be available for extensions and load them upfront -// TODO: we need to move these files into their respective folders/silos. We then need a way for a silo to globally register a component +import { manifests as debugManifests } from './debug/manifests'; +// TODO: we need to figure out what components should be available for extensions and load them upfront +// TODO: we need to move these files into their respective folders/silos. We then need a way for a silo to globally register a component import './entity-action/entity-action-list.element'; import './entity-action/entity-action.element'; import './backoffice-frame/backoffice-header.element'; @@ -40,3 +41,5 @@ import './history/history-item.element'; import './workspace/workspace-action/workspace-action.element'; import './workspace/workspace-content/workspace-content.element'; import './workspace/workspace-layout/workspace-layout.element'; + +export const manifests = [...debugManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/index.ts index 96b030a821..f308f04e5b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/index.ts @@ -1,5 +1,4 @@ -import './components'; - +import { manifests as componentManifests } from './components'; import { manifests as propertyActionManifests } from './property-actions/manifests'; import { manifests as propertyEditorManifests } from './property-editors/manifests'; import { manifests as collectionViewManifests } from './collection/views/manifests'; @@ -9,6 +8,7 @@ import { umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; import { ManifestTypes } from '@umbraco-cms/extensions-registry'; export const manifests = [ + ...componentManifests, ...propertyActionManifests, ...propertyEditorManifests, ...collectionViewManifests, diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/document-picker/property-editor-ui-document-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/document-picker/property-editor-ui-document-picker.element.ts index f6edebbb17..48c65b4142 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/document-picker/property-editor-ui-document-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/document-picker/property-editor-ui-document-picker.element.ts @@ -38,6 +38,7 @@ export class UmbPropertyEditorUIContentPickerElement extends UmbLitElement { // TODO: Implement mandatory? render() { return html` + Date: Thu, 9 Mar 2023 15:18:30 +0100 Subject: [PATCH 077/134] register search modal --- .../libs/modal/modal-handler.ts | 4 ++-- .../libs/modal/modal.context.ts | 11 ++++++----- .../libs/modal/token/modal-token.ts | 4 ++-- .../src/backoffice/search/modals/manifests.ts | 12 ++++++++++++ .../src/backoffice/search/modals/search/index.ts | 3 +++ .../search/modals/search/search-modal.element.ts} | 8 ++++---- 6 files changed, 29 insertions(+), 13 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/search/modals/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/search/modals/search/index.ts rename src/Umbraco.Web.UI.Client/{libs/modal/layouts/search/modal-layout-search.element.ts => src/backoffice/search/modals/search/search-modal.element.ts} (97%) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts index 742d83c2b1..16384079f3 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts @@ -37,8 +37,8 @@ export class UmbModalHandler { this.key = uuidv4(); if (modalAlias instanceof UmbModalToken) { - this.type = modalAlias.getDefaultConfig().type || this.type; - this.size = modalAlias.getDefaultConfig().size || this.size; + this.type = modalAlias.getDefaultConfig()?.type || this.type; + this.size = modalAlias.getDefaultConfig()?.size || this.size; } this.type = config?.type || this.type; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index ecdc6985b8..70430dff05 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -1,4 +1,4 @@ -import './layouts/search/modal-layout-search.element'; +import '../../src/backoffice/search/modals/search/search-modal.element'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; import { BehaviorSubject } from 'rxjs'; @@ -27,8 +27,9 @@ export class UmbModalContext { this.host = host; } + // TODO: Remove this when the modal system is more flexible public search(): UmbModalHandler { - const modalHandler = new UmbModalHandler('umb-modal-layout-search'); + const modalHandler = new UmbModalHandler(this.host, 'Umb.Modal.Search'); //TODO START: This is a hack to get the search modal layout to look like i want it to. //TODO: Remove from here to END when the modal system is more flexible @@ -48,15 +49,15 @@ export class UmbModalContext { dialog.style.padding = '0'; dialog.style.boxShadow = 'var(--uui-shadow-depth-5)'; dialog.style.borderRadius = '9px'; - const search = document.createElement('umb-modal-layout-search'); + const search = document.createElement('umb-search-modal'); dialog.appendChild(search); requestAnimationFrame(() => { dialog.showModal(); }); - modalHandler.element = dialog as unknown as UUIModalDialogElement; + modalHandler.containerElement = dialog as unknown as UUIModalDialogElement; //TODO END - modalHandler.element.addEventListener('close-end', () => this.#onCloseEnd(modalHandler)); + modalHandler.containerElement.addEventListener('close-end', () => this.#onCloseEnd(modalHandler)); this.#modals.next([...this.#modals.getValue(), modalHandler]); return modalHandler; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/modal-token.ts b/src/Umbraco.Web.UI.Client/libs/modal/token/modal-token.ts index 784dc5becb..b038ec3fe7 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/token/modal-token.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/token/modal-token.ts @@ -19,7 +19,7 @@ export class UmbModalToken { * used only for debugging purposes, * it should but does not need to be unique */ - constructor(protected alias: string, protected defaultConfig: UmbModalConfig, protected _desc?: string) {} + constructor(protected alias: string, protected defaultConfig?: UmbModalConfig, protected _desc?: string) {} /** * This method must always return the unique alias of the token since that @@ -31,7 +31,7 @@ export class UmbModalToken { return this.alias; } - public getDefaultConfig(): UmbModalConfig { + public getDefaultConfig(): UmbModalConfig | undefined { return this.defaultConfig; } } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/search/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/search/modals/manifests.ts new file mode 100644 index 0000000000..7765c306fc --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/search/modals/manifests.ts @@ -0,0 +1,12 @@ +import type { ManifestModal } from '@umbraco-cms/extensions-registry'; + +const modals: Array = [ + { + type: 'modal', + alias: 'Umb.Modal.Search', + name: 'Search Modal', + loader: () => import('./search/search-modal.element'), + }, +]; + +export const manifests = [...modals]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/search/modals/search/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/search/modals/search/index.ts new file mode 100644 index 0000000000..bb882569b4 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/search/modals/search/index.ts @@ -0,0 +1,3 @@ +import { UmbModalToken } from 'libs/modal'; + +export const UMB_SEARCH_MODAL_TOKEN = new UmbModalToken('Umb.Modal.Search'); diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/search/modal-layout-search.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/search/modals/search/search-modal.element.ts similarity index 97% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/search/modal-layout-search.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/search/modals/search/search-modal.element.ts index df4ef06d2f..b294c49eda 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/search/modal-layout-search.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/search/modals/search/search-modal.element.ts @@ -14,8 +14,8 @@ export type SearchGroupItem = { name: string; items: Array; }; -@customElement('umb-modal-layout-search') -export class UmbModalLayoutSearchElement extends LitElement { +@customElement('umb-search-modal') +export class UmbSearchModalElement extends LitElement { static styles = [ UUITextStyles, css` @@ -308,10 +308,10 @@ export class UmbModalLayoutSearchElement extends LitElement { ]; } -export default UmbModalLayoutSearchElement; +export default UmbSearchModalElement; declare global { interface HTMLElementTagNameMap { - 'umb-modal-layout-search': UmbModalLayoutSearchElement; + 'umb-search-modal': UmbSearchModalElement; } } From 7d6938262520e2c1a701cec0702536cd03958a70 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 15:20:57 +0100 Subject: [PATCH 078/134] remove debug element --- .../property-editor-ui-document-picker.element.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/document-picker/property-editor-ui-document-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/document-picker/property-editor-ui-document-picker.element.ts index 48c65b4142..f6edebbb17 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/document-picker/property-editor-ui-document-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/document-picker/property-editor-ui-document-picker.element.ts @@ -38,7 +38,6 @@ export class UmbPropertyEditorUIContentPickerElement extends UmbLitElement { // TODO: Implement mandatory? render() { return html` - Date: Thu, 9 Mar 2023 15:25:01 +0100 Subject: [PATCH 079/134] add todo --- src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 70430dff05..646c9c4c8b 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -1,3 +1,4 @@ +// TODO: remove this import when the search hack is removed import '../../src/backoffice/search/modals/search/search-modal.element'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; From f48fd4d1c7f7acf8f62281bfb17a013bb7f99e0a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 15:44:47 +0100 Subject: [PATCH 080/134] register property settings modal --- .../src/backoffice/shared/modals/manifests.ts | 6 + .../shared/modals/property-settings/index.ts | 9 + .../property-settings-modal.element.ts} | 12 +- .../property-creator.element.ts | 13 +- .../src/core/modal/modal-handler.ts | 68 ------ .../src/core/modal/modal.context.ts | 227 ------------------ 6 files changed, 29 insertions(+), 306 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/index.ts rename src/Umbraco.Web.UI.Client/src/{core/modal/layouts/property-settings/modal-layout-property-settings.element.ts => backoffice/shared/modals/property-settings/property-settings-modal.element.ts} (95%) delete mode 100644 src/Umbraco.Web.UI.Client/src/core/modal/modal-handler.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/core/modal/modal.context.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts index d84c7f2eab..ccf604a113 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts @@ -25,6 +25,12 @@ const modals: Array = [ name: 'Link Picker Modal', loader: () => import('./link-picker/link-picker-modal.element'), }, + { + type: 'modal', + alias: 'Umb.Modal.PropertySettings', + name: 'Property Settings Modal', + loader: () => import('./property-settings/property-settings-modal.element'), + }, { type: 'modal', alias: 'Umb.Modal.SectionPicker', diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/index.ts new file mode 100644 index 0000000000..af76b4c80a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/index.ts @@ -0,0 +1,9 @@ +import { UmbModalToken } from 'libs/modal'; + +// TODO: add interface for data +// PropertyTypeViewModelBaseModel + +export const UMB_PROPERTY_SETTINGS_MODAL_TOKEN = new UmbModalToken('Umb.Modal.PropertySettings', { + type: 'sidebar', + size: 'small', +}); diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/property-settings/modal-layout-property-settings.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/property-settings-modal.element.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/src/core/modal/layouts/property-settings/modal-layout-property-settings.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/property-settings-modal.element.ts index 0f64b7e34b..c56a3c1970 100644 --- a/src/Umbraco.Web.UI.Client/src/core/modal/layouts/property-settings/modal-layout-property-settings.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/property-settings-modal.element.ts @@ -3,11 +3,12 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, html, nothing } from 'lit'; import { customElement, state } from 'lit/decorators.js'; import { UmbModalContext, UmbModalLayoutElement, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; +import { UMB_PROPERTY_EDITOR_UI_PICKER_MODAL_TOKEN } from '../../property-editors/modals/property-editor-ui-picker'; import { ManifestPropertyEditorUI } from '@umbraco-cms/extensions-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; -@customElement('umb-modal-layout-property-settings') -export class UmbModalLayoutPropertySettingsElement extends UmbModalLayoutElement { +@customElement('umb-property-settings-modal') +export class UmbPropertySettingsModalElement extends UmbModalLayoutElement { static styles = [ UUITextStyles, css` @@ -229,6 +230,7 @@ export class UmbModalLayoutPropertySettingsElement extends UmbModalLayoutElement } } + // TODO: move this to a helper so we can reuse it across the app #generateAlias(text: string) { //replace all spaces characters with a dash and remove all non-alphanumeric characters, except underscore. Allow a maximum of 1 dashes or underscores in a row. return text @@ -257,7 +259,7 @@ export class UmbModalLayoutPropertySettingsElement extends UmbModalLayoutElement } #onOpenPropertyEditorUIPicker() { - const modalHandler = this.#modalContext?.propertyEditorUIPicker({ + const modalHandler = this.#modalContext?.open(UMB_PROPERTY_EDITOR_UI_PICKER_MODAL_TOKEN, { selection: [], }); @@ -423,8 +425,10 @@ export class UmbModalLayoutPropertySettingsElement extends UmbModalLayoutElement } } +export default UmbPropertySettingsModalElement; + declare global { interface HTMLElementTagNameMap { - 'umb-modal-layout-property-settings': UmbModalLayoutPropertySettingsElement; + 'umb-property-settings-modal': UmbPropertySettingsModalElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-creator/property-creator.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-creator/property-creator.element.ts index cf2433c364..e2ca97bbef 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-creator/property-creator.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-creator/property-creator.element.ts @@ -1,8 +1,9 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, html } from 'lit'; import { customElement } from 'lit/decorators.js'; -import { UmbLitElement } from '@umbraco-cms/element'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; +import { UMB_PROPERTY_SETTINGS_MODAL_TOKEN } from '../modals/property-settings'; +import { UmbLitElement } from '@umbraco-cms/element'; @customElement('umb-property-creator') export class UmbPropertyCreatorElement extends UmbLitElement { @@ -17,13 +18,11 @@ export class UmbPropertyCreatorElement extends UmbLitElement { } #onAddProperty() { - const modalHandler = this.#modalContext?.propertySettings(); + const modalHandler = this.#modalContext?.open(UMB_PROPERTY_SETTINGS_MODAL_TOKEN); - if (modalHandler) { - modalHandler.onClose().then((result) => { - console.log('result', result); - }); - } + modalHandler?.onClose().then((result) => { + console.log('result', result); + }); } render() { diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/modal-handler.ts b/src/Umbraco.Web.UI.Client/src/core/modal/modal-handler.ts deleted file mode 100644 index e99f949cb2..0000000000 --- a/src/Umbraco.Web.UI.Client/src/core/modal/modal-handler.ts +++ /dev/null @@ -1,68 +0,0 @@ -import type { UUIDialogElement } from '@umbraco-ui/uui'; -import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; -import type { UUIModalSidebarElement, UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; -import { v4 as uuidv4 } from 'uuid'; - -import { UmbModalOptions } from './modal.context'; - -//TODO consider splitting this into two separate handlers -export class UmbModalHandler { - private _closeResolver: any; - private _closePromise: any; - - public element: UUIModalDialogElement | UUIModalSidebarElement; - public key: string; - public type: string; - public size: UUIModalSidebarSize; - - constructor(element: string | HTMLElement, options?: UmbModalOptions) { - this.key = uuidv4(); - - this.type = options?.type || 'dialog'; - this.size = options?.size || 'small'; - this.element = this._createElement(element, options); - - // TODO: Consider if its right to use Promises, or use another event based system? Would we need to be able to cancel an event, to then prevent the closing..? - this._closePromise = new Promise((resolve) => { - this._closeResolver = resolve; - }); - } - - private _createElement(element: string | HTMLElement, options?: UmbModalOptions) { - const layoutElement = this._createInsideElement(element, options?.data); - return this.type === 'sidebar' - ? this._createSidebarElement(layoutElement) - : this._createDialogElement(layoutElement); - } - - private _createSidebarElement(insideElement: HTMLElement) { - const sidebarElement = document.createElement('uui-modal-sidebar'); - sidebarElement.appendChild(insideElement); - sidebarElement.size = this.size; - return sidebarElement; - } - - private _createDialogElement(insideElement: HTMLElement) { - const modalDialogElement = document.createElement('uui-modal-dialog'); - const dialogElement: UUIDialogElement = document.createElement('uui-dialog'); - modalDialogElement.appendChild(dialogElement); - dialogElement.appendChild(insideElement); - return modalDialogElement; - } - - private _createInsideElement(element: string | HTMLElement, data: unknown) { - const insideElement: any = element instanceof HTMLElement ? element : document.createElement(element); - insideElement.data = data; - insideElement.modalHandler = this; - return insideElement; - } - - public close(...args: any) { - this._closeResolver(...args); - this.element.close(); - } - - public onClose(): Promise { - return this._closePromise; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/src/core/modal/modal.context.ts deleted file mode 100644 index 055e7ba532..0000000000 --- a/src/Umbraco.Web.UI.Client/src/core/modal/modal.context.ts +++ /dev/null @@ -1,227 +0,0 @@ -// TODO: lazy load -import './layouts/confirm/modal-layout-confirm.element'; -import './layouts/content-picker/modal-layout-content-picker.element'; -import './layouts/media-picker/modal-layout-media-picker.element'; -import './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; -import './layouts/property-settings/modal-layout-property-settings.element'; -import './layouts/modal-layout-current-user.element'; -import './layouts/icon-picker/modal-layout-icon-picker.element'; -import '../../backoffice/settings/languages/language-picker/language-picker-modal-layout.element'; -import './layouts/link-picker/modal-layout-link-picker.element'; -import './layouts/search/modal-layout-search.element.ts'; - -import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; -import { BehaviorSubject } from 'rxjs'; -import type { UUIModalDialogElement } from '@umbraco-ui/uui-modal-dialog'; -import { UmbModalChangePasswordData } from './layouts/modal-layout-change-password.element'; -import type { UmbModalIconPickerData } from './layouts/icon-picker/modal-layout-icon-picker.element'; -import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; -import type { UmbModalContentPickerData } from './layouts/content-picker/modal-layout-content-picker.element'; -import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; -import type { UmbModalMediaPickerData } from './layouts/media-picker/modal-layout-media-picker.element'; -import type { UmbModalLinkPickerData } from './layouts/link-picker/modal-layout-link-picker.element'; -import { UmbModalHandler } from './modal-handler'; -import { UmbPickerModalData } from './layouts/modal-layout-picker-base'; -import { UmbContextToken } from '@umbraco-cms/context-api'; -import { LanguageModel } from '@umbraco-cms/backend-api'; - -export type UmbModalType = 'dialog' | 'sidebar'; - -export interface UmbModalOptions { - type?: UmbModalType; - size?: UUIModalSidebarSize; - data?: UmbModalData; -} - -// TODO: we should find a way to easily open a modal without adding custom methods to this context. It would result in a better separation of concerns. -// TODO: move all layouts into their correct "silo" folders. User picker should live with users etc. -export class UmbModalContext { - // TODO: Investigate if we can get rid of HTML elements in our store, so we can use one of our states. - #modals = new BehaviorSubject(>[]); - public readonly modals = this.#modals.asObservable(); - - /** - * Opens a Confirm modal - * @public - * @param {UmbModalConfirmData} data - * @return {*} {UmbModalHandler} - * @memberof UmbModalContext - */ - public confirm(data: UmbModalConfirmData): UmbModalHandler { - return this.open('umb-modal-layout-confirm', { data, type: 'dialog' }); - } - - /** - * Opens a Content Picker sidebar modal - * @public - * @param {UmbModalContentPickerData} [data] - * @return {*} {UmbModalHandler} - * @memberof UmbModalContext - */ - public contentPicker(data?: UmbModalContentPickerData): UmbModalHandler { - return this.open('umb-modal-layout-content-picker', { data, type: 'sidebar', size: 'small' }); - } - - /** - * Opens a Media Picker sidebar modal - * @public - * @param {UmbModalMediaPickerData} [data] - * @return {*} {UmbModalHandler} - * @memberof UmbModalContext - */ - public mediaPicker(data?: UmbModalMediaPickerData): UmbModalHandler { - return this.open('umb-modal-layout-media-picker', { data, type: 'sidebar', size: 'small' }); - } - - /** - * Opens a Property Editor UI sidebar modal - * @public - * @param {UmbModalPropertyEditorUIPickerData} [data] - * @return {*} {UmbModalHandler} - * @memberof UmbModalContext - */ - public propertyEditorUIPicker(data?: UmbModalPropertyEditorUIPickerData): UmbModalHandler { - return this.open('umb-modal-layout-property-editor-ui-picker', { data, type: 'sidebar', size: 'small' }); - } - - /** - * Opens an Icon Picker sidebar modal - * @public - * @param {UmbModalIconPickerData} [data] - * @return {*} {UmbModalHandler} - * @memberof UmbModalContext - */ - public iconPicker(data?: UmbModalIconPickerData): UmbModalHandler { - return this.open('umb-modal-layout-icon-picker', { data, type: 'sidebar', size: 'small' }); - } - - /** - * Opens an Link Picker sidebar modal - * @public - * @param {(LinkPickerData & LinkPickerConfig)} [data] - * @return {*} {UmbModalHandler} - * @memberof UmbModalContext - */ - public linkPicker(data?: UmbModalLinkPickerData): UmbModalHandler { - return this.open('umb-modal-layout-link-picker', { - data, - type: 'sidebar', - size: data?.config?.overlaySize || 'small', - }); - } - - /** - * Opens the user settings sidebar modal - * @public - * @return {*} {UmbModalHandler} - * @memberof UmbModalContext - */ - public userSettings(): UmbModalHandler { - return this.open('umb-modal-layout-current-user', { type: 'sidebar', size: 'small' }); - } - - /** - * Opens the property settings sidebar modal - * @public - * @return {*} {UmbModalHandler} - * @memberof UmbModalService - */ - public propertySettings(): UmbModalHandler { - return this.open('umb-modal-layout-property-settings', { type: 'sidebar', size: 'small' }); - } - - /** - * Opens the user settings sidebar modal - * @public - * @return {*} {UmbModalHandler} - * @memberof UmbModalContext - */ - public changePassword(data: UmbModalChangePasswordData): UmbModalHandler { - return this.open('umb-modal-layout-change-password', { data, type: 'dialog' }); - } - - /** - * Opens a language picker sidebar modal - * @public - * @return {*} {UmbModalHandler} - * @memberof UmbModalContext - */ - public languagePicker(data: UmbPickerModalData): UmbModalHandler { - return this.open('umb-language-picker-modal-layout', { data, type: 'sidebar' }); - } - - public search(): UmbModalHandler { - const modalHandler = new UmbModalHandler('umb-modal-layout-search'); - - //TODO START: This is a hack to get the search modal layout to look like i want it to. - //TODO: Remove from here to END when the modal system is more flexible - const topDistance = '50%'; - const margin = '16px'; - const maxHeight = '600px'; - const maxWidth = '500px'; - const dialog = document.createElement('dialog') as HTMLDialogElement; - dialog.style.top = `max(${margin}, calc(${topDistance} - ${maxHeight} / 2))`; - dialog.style.margin = '0 auto'; - dialog.style.transform = `translateY(${-maxHeight})`; - dialog.style.maxHeight = `min(${maxHeight}, calc(100% - ${margin}px * 2))`; - dialog.style.width = `min(${maxWidth}, calc(100vw - ${margin}))`; - dialog.style.boxSizing = 'border-box'; - dialog.style.background = 'none'; - dialog.style.border = 'none'; - dialog.style.padding = '0'; - dialog.style.boxShadow = 'var(--uui-shadow-depth-5)'; - dialog.style.borderRadius = '9px'; - const search = document.createElement('umb-modal-layout-search'); - dialog.appendChild(search); - requestAnimationFrame(() => { - dialog.showModal(); - }); - modalHandler.element = dialog as unknown as UUIModalDialogElement; - //TODO END - - modalHandler.element.addEventListener('close-end', () => this._handleCloseEnd(modalHandler)); - - this.#modals.next([...this.#modals.getValue(), modalHandler]); - return modalHandler; - } - - /** - * Opens a modal or sidebar modal - * @public - * @param {(string | HTMLElement)} element - * @param {UmbModalOptions} [options] - * @return {*} {UmbModalHandler} - * @memberof UmbModalContext - */ - public open(element: string | HTMLElement, options?: UmbModalOptions): UmbModalHandler { - const modalHandler = new UmbModalHandler(element, options); - - modalHandler.element.addEventListener('close-end', () => this._handleCloseEnd(modalHandler)); - - this.#modals.next([...this.#modals.getValue(), modalHandler]); - return modalHandler; - } - - /** - * Closes a modal or sidebar modal - * @private - * @param {string} key - * @memberof UmbModalContext - */ - private _close(key: string) { - this.#modals.next(this.#modals.getValue().filter((modal) => modal.key !== key)); - } - - /** - * Handles the close-end event - * @private - * @param {UmbModalHandler} modalHandler - * @memberof UmbModalContext - */ - private _handleCloseEnd(modalHandler: UmbModalHandler) { - modalHandler.element.removeEventListener('close-end', () => this._handleCloseEnd(modalHandler)); - this._close(modalHandler.key); - } -} - -export const UMB_MODAL_CONTEXT_TOKEN = new UmbContextToken('UmbModalContext'); From 5d4cdaa686f5043691f300123a300e4f9abcf103 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 15:46:44 +0100 Subject: [PATCH 081/134] use token to open change password modal --- .../users/users/workspace/user-workspace.element.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/workspace/user-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/workspace/user-workspace.element.ts index e3c4234c30..d3cf0a2f79 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/workspace/user-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/workspace/user-workspace.element.ts @@ -191,7 +191,9 @@ export class UmbUserWorkspaceElement extends UmbLitElement implements UmbWorkspa } private _changePassword() { - this._modalContext?.changePassword({ requireOldPassword: this._currentUserStore?.isAdmin === false }); + this._modalContext?.open(UMB_CHANGE_PASSWORD_MODAL_TOKEN, { + requireOldPassword: this._currentUserStore?.isAdmin === false, + }); } private _renderActionButtons() { From 0a1b62816a350cb3277228c1681ad17ee41c7142 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 15:46:52 +0100 Subject: [PATCH 082/134] remove unused --- .../users/users/workspace/user-workspace.element.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/workspace/user-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/workspace/user-workspace.element.ts index d3cf0a2f79..99838f5a96 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/workspace/user-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/workspace/user-workspace.element.ts @@ -1,15 +1,14 @@ import { UUIInputElement, UUIInputEvent } from '@umbraco-ui/uui'; import { css, html, nothing, TemplateResult } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; +import { customElement, state } from 'lit/decorators.js'; import { ifDefined } from 'lit/directives/if-defined.js'; import { repeat } from 'lit/directives/repeat.js'; -import { distinctUntilChanged } from 'rxjs'; - import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN } from '../../current-user/current-user.store'; import type { UmbModalContext } from '../../../../../libs/modal'; import type { UmbWorkspaceEntityElement } from '../../../shared/components/workspace/workspace-entity-element.interface'; +import { UMB_CHANGE_PASSWORD_MODAL_TOKEN } from '../../current-user/modals/change-password'; import { UmbWorkspaceUserContext } from './user-workspace.context'; import { getLookAndColorFromUserStatus } from '@umbraco-cms/utils'; import type { UserDetails } from '@umbraco-cms/models'; From 318bd7678ab371c5d7349a61197c77b78a802788 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 16:15:14 +0100 Subject: [PATCH 083/134] register user create and invite modals --- .../current-user/current-user-modal.element.ts | 5 ++++- .../views/users/section-view-users.element.ts | 2 +- .../users/workspace-view-users-overview.element.ts | 14 ++++++++------ .../create-user/create-user-modal.element.ts} | 10 +++++----- .../modals/create-user/create-user-modal.test.ts} | 0 .../users/users/modals/create-user/index.ts | 6 ++++++ .../users/users/modals/invite-user/index.ts | 6 ++++++ .../invite-user/invite-user-modal.element.ts} | 10 +++++----- .../modals/invite-user/invite-user-modal.test.ts} | 0 .../src/backoffice/users/users/modals/manifests.ts | 12 ++++++++++++ 10 files changed, 47 insertions(+), 18 deletions(-) rename src/Umbraco.Web.UI.Client/src/backoffice/users/{user-section/views/users/workspace-view-users-create.element.ts => users/modals/create-user/create-user-modal.element.ts} (95%) rename src/Umbraco.Web.UI.Client/src/backoffice/users/{user-section/views/users/workspace-view-users-create.test.ts => users/modals/create-user/create-user-modal.test.ts} (100%) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/index.ts rename src/Umbraco.Web.UI.Client/src/backoffice/users/{user-section/views/users/workspace-view-users-invite.element.ts => users/modals/invite-user/invite-user-modal.element.ts} (94%) rename src/Umbraco.Web.UI.Client/src/backoffice/users/{user-section/views/users/workspace-view-users-invite.test.ts => users/modals/invite-user/invite-user-modal.test.ts} (100%) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/current-user-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/current-user-modal.element.ts index 2d3ee3aa23..3d7957c002 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/current-user-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/current-user-modal.element.ts @@ -8,6 +8,7 @@ import { UMB_CURRENT_USER_HISTORY_STORE_CONTEXT_TOKEN, } from '../../current-user-history.store'; import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN } from '../../current-user.store'; +import { UMB_CHANGE_PASSWORD_MODAL_TOKEN } from '../change-password'; import type { UserDetails } from '@umbraco-cms/models'; import { UmbLitElement } from '@umbraco-cms/element'; @@ -138,7 +139,9 @@ export class UmbCurrentUserModalElement extends UmbLitElement { private _changePassword() { if (!this._modalContext) return; - this._modalContext.changePassword({ requireOldPassword: this._currentUserStore?.isAdmin || false }); + this._modalContext.open(UMB_CHANGE_PASSWORD_MODAL_TOKEN, { + requireOldPassword: this._currentUserStore?.isAdmin || false, + }); } private _renderHistoryItem(item: UmbCurrentUserHistoryItem) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/section-view-users.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/section-view-users.element.ts index 4c16fad350..2a730618ac 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/section-view-users.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/section-view-users.element.ts @@ -8,7 +8,7 @@ import { umbExtensionsRegistry, createExtensionElement } from '@umbraco-cms/exte import './list-view-layouts/table/workspace-view-users-table.element'; import './list-view-layouts/grid/workspace-view-users-grid.element'; import './workspace-view-users-selection.element'; -import './workspace-view-users-invite.element'; + import type { ManifestWorkspace, UserDetails } from '@umbraco-cms/models'; import { UmbLitElement } from '@umbraco-cms/element'; import { DeepState } from '@umbraco-cms/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-overview.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-overview.element.ts index 0cbba67347..6fea9f47c3 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-overview.element.ts @@ -11,8 +11,8 @@ import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; import './list-view-layouts/table/workspace-view-users-table.element'; import './list-view-layouts/grid/workspace-view-users-grid.element'; import './workspace-view-users-selection.element'; -import './workspace-view-users-invite.element'; -import './workspace-view-users-create.element'; +import { UMB_INVITE_USER_MODAL_TOKEN } from 'src/backoffice/users/users/modals/invite-user'; +import { UMB_CREATE_USER_MODAL_TOKEN } from 'src/backoffice/users/users/modals/create-user'; export type UsersViewType = 'list' | 'grid'; @customElement('umb-workspace-view-users-overview') @@ -160,13 +160,15 @@ export class UmbWorkspaceViewUsersOverviewElement extends UmbLitElement { } private _showInviteOrCreate() { - let modal = undefined; + let token = undefined; + // TODO: we need to find a better way to determine if we should create or invite if (this.isCloud) { - modal = document.createElement('umb-workspace-view-users-invite'); + token = UMB_INVITE_USER_MODAL_TOKEN; } else { - modal = document.createElement('umb-workspace-view-users-create'); + token = UMB_CREATE_USER_MODAL_TOKEN; } - this._modalContext?.open(modal, { type: 'dialog' }); + + this._modalContext?.open(token); } render() { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-create.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/create-user-modal.element.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-create.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/create-user-modal.element.ts index 25e0e74142..6ea69efaa7 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-create.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/create-user-modal.element.ts @@ -4,7 +4,7 @@ import { customElement, query, state } from 'lit/decorators.js'; import { UUIInputPasswordElement } from '@umbraco-ui/uui'; import { UmbModalLayoutElement } from '@umbraco-cms/modal'; import { UmbInputPickerUserGroupElement } from '../../../../shared/components/input-user-group/input-user-group.element'; -import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../../users/repository/user.store'; +import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../repository/user.store'; import type { UserDetails } from '@umbraco-cms/models'; import { UmbNotificationDefaultData, @@ -13,8 +13,8 @@ import { } from '@umbraco-cms/notification'; export type UsersViewType = 'list' | 'grid'; -@customElement('umb-workspace-view-users-create') -export class UmbWorkspaceViewUsersCreateElement extends UmbModalLayoutElement { +@customElement('umb-create-user-modal') +export class UmbCreateUserModalElement extends UmbModalLayoutElement { static styles = [ UUITextStyles, css` @@ -210,10 +210,10 @@ export class UmbWorkspaceViewUsersCreateElement extends UmbModalLayoutElement { } } -export default UmbWorkspaceViewUsersCreateElement; +export default UmbCreateUserModalElement; declare global { interface HTMLElementTagNameMap { - 'umb-workspace-view-users-create': UmbWorkspaceViewUsersCreateElement; + 'umb-create-user-modal': UmbCreateUserModalElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-create.test.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/create-user-modal.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-create.test.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/create-user-modal.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/index.ts new file mode 100644 index 0000000000..1649867505 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/index.ts @@ -0,0 +1,6 @@ +import { UmbModalToken } from 'libs/modal'; + +export const UMB_CREATE_USER_MODAL_TOKEN = new UmbModalToken('Umb.Modal.CreateUser', { + type: 'dialog', + size: 'small', +}); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/index.ts new file mode 100644 index 0000000000..e5f0c9e3b9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/index.ts @@ -0,0 +1,6 @@ +import { UmbModalToken } from 'libs/modal'; + +export const UMB_INVITE_USER_MODAL_TOKEN = new UmbModalToken('Umb.Modal.InviteUser', { + type: 'dialog', + size: 'small', +}); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-invite.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/invite-user-modal.element.ts similarity index 94% rename from src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-invite.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/invite-user-modal.element.ts index 5177605153..c48d683db0 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-invite.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/invite-user-modal.element.ts @@ -3,12 +3,12 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, query, state } from 'lit/decorators.js'; import { UmbModalLayoutElement } from '@umbraco-cms/modal'; import { UmbInputPickerUserGroupElement } from '../../../../shared/components/input-user-group/input-user-group.element'; -import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../../users/repository/user.store'; +import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../repository/user.store'; import type { UserDetails } from '@umbraco-cms/models'; export type UsersViewType = 'list' | 'grid'; -@customElement('umb-workspace-view-users-invite') -export class UmbWorkspaceViewUsersInviteElement extends UmbModalLayoutElement { +@customElement('umb-invite-user-modal') +export class UmbInviteUserModalElement extends UmbModalLayoutElement { static styles = [ UUITextStyles, css` @@ -182,10 +182,10 @@ export class UmbWorkspaceViewUsersInviteElement extends UmbModalLayoutElement { } } -export default UmbWorkspaceViewUsersInviteElement; +export default UmbInviteUserModalElement; declare global { interface HTMLElementTagNameMap { - 'umb-workspace-view-users-invite': UmbWorkspaceViewUsersInviteElement; + 'umb-invite-user-modal': UmbInviteUserModalElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-invite.test.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/invite-user-modal.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-invite.test.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/invite-user-modal.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/manifests.ts index a73490d0c1..623b47dc39 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/manifests.ts @@ -1,6 +1,18 @@ import type { ManifestModal } from '@umbraco-cms/extensions-registry'; const modals: Array = [ + { + type: 'modal', + alias: 'Umb.Modal.CreateUser', + name: 'Create User Modal', + loader: () => import('./create-user/create-user-modal.element'), + }, + { + type: 'modal', + alias: 'Umb.Modal.InviteUser', + name: 'Invite User Modal', + loader: () => import('./invite-user/invite-user-modal.element'), + }, { type: 'modal', alias: 'Umb.Modal.UserPicker', From e63058a049ee4335cebe27a89749ad964df8f171 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 20:26:59 +0100 Subject: [PATCH 084/134] remove unused modal --- .../modals/basic/basic-modal.element.ts | 46 ------------------- .../modals/basic/basic-modal.stories.ts | 43 ----------------- .../backoffice/shared/modals/basic/index.ts | 11 ----- .../src/backoffice/shared/modals/manifests.ts | 6 --- 4 files changed, 106 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.element.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.stories.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.element.ts deleted file mode 100644 index 27d8f9fd4e..0000000000 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.element.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { UmbModalLayoutElement } from '../../../../../libs/modal/layouts/modal-layout.element'; -import { UmbBasicModalData } from '.'; - -@customElement('umb-basic-modal') -export class UmbBasicModalElement extends UmbModalLayoutElement { - static styles = [ - UUITextStyles, - css` - uui-scroll-container { - background-color: var(--uui-color-surface); - } - `, - ]; - - private _close() { - // As this is a basic modal designed for viewing readonly info - // Then we don't need to pass any data back to the parent when - // we close/save the modal etc... - this.modalHandler?.close(); - } - - connectedCallback(): void { - super.connectedCallback(); - } - - render() { - return html` - - ${this.data?.content} - Close - - `; - } -} - -export default UmbBasicModalElement; - -declare global { - interface HTMLElementTagNameMap { - 'umb-basic-modal': UmbBasicModalElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.stories.ts deleted file mode 100644 index 6e1c887d98..0000000000 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/basic-modal.stories.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; -import { UmbBasicModalElement, UmbBasicModalData } from './basic-modal.element'; - -export default { - title: 'API/Modals/Layouts/Basic', - component: 'umb-basic-modal', - id: 'umb-basic-modal', -} as Meta; - -const htmlContent = html` - - - - - - Title 1 - Title 2 - - - - Cell 1 - Cell 2 - - - - Cell 3 - Cell 4 - -`; - -const data: UmbBasicModalData = { - header: html` Debug: Contexts`, - content: htmlContent, - overlaySize: 'small', -}; - -export const Overview: Story = () => html` - - -`; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/index.ts deleted file mode 100644 index 2c27f5f30c..0000000000 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/basic/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -import type { TemplateResult } from 'lit'; -import { UmbModalToken } from '@umbraco-cms/modal'; - -export interface UmbBasicModalData { - headline: string; - content: TemplateResult | string; -} - -export const UMB_BASIC_MODAL_TOKEN = new UmbModalToken('Umb.Modal.Basic', { - type: 'dialog', -}); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts index ccf604a113..f2f6a9f749 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/manifests.ts @@ -1,12 +1,6 @@ import type { ManifestModal } from '@umbraco-cms/extensions-registry'; const modals: Array = [ - { - type: 'modal', - alias: 'Umb.Modal.Basic', - name: 'Basic Modal', - loader: () => import('./basic/basic-modal.element'), - }, { type: 'modal', alias: 'Umb.Modal.Confirm', From 95dfb7d67a0a602114b72d52c3f85300e4b9a8fb Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 20:27:11 +0100 Subject: [PATCH 085/134] temp remove modal story --- .../libs/modal/stories/modal.stories.ts | 7 +++++-- .../modal/stories/story-modal-service-example.element.ts | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.stories.ts b/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.stories.ts index e03fe93493..ac2166f9c6 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.stories.ts @@ -7,13 +7,16 @@ export default { argTypes: { modalLayout: { control: 'select', - options: ['Confirm', 'Content Picker', 'Property Editor UI Picker', 'Icon Picker'], + //options: ['Confirm', 'Content Picker', 'Property Editor UI Picker', 'Icon Picker'], }, }, } as Meta; const Template: Story = (props) => { - return html` `; + return html` + Under construction + + `; }; export const Overview = Template.bind({}); diff --git a/src/Umbraco.Web.UI.Client/libs/modal/stories/story-modal-service-example.element.ts b/src/Umbraco.Web.UI.Client/libs/modal/stories/story-modal-service-example.element.ts index f51cc533be..3a84115b8d 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/stories/story-modal-service-example.element.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/stories/story-modal-service-example.element.ts @@ -21,6 +21,8 @@ export class StoryModalContextExampleElement extends UmbLitElement { } private _open() { + // TODO: use the extension registry to get all modals + /* switch (this.modalLayout) { case 'Content Picker': this._modalContext?.documentPicker(); @@ -38,6 +40,7 @@ export class StoryModalContextExampleElement extends UmbLitElement { }); break; } + */ } render() { From a8e4039644ad235f8bb534a719489abd2034a05e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 20:27:22 +0100 Subject: [PATCH 086/134] register and export language picker modal --- .../src/backoffice/settings/languages/manifests.ts | 2 ++ .../language-picker/language-picker-modal.element.ts | 2 ++ .../settings/languages/modals/manifests.ts | 12 ++++++++++++ 3 files changed, 16 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/manifests.ts index 4d649f5cd8..92434c12ef 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/manifests.ts @@ -3,6 +3,7 @@ import { manifests as treeManifests } from './menu-item/manifests'; import { manifests as entityActions } from './entity-actions/manifests'; import { manifests as workspaceManifests } from './workspace/manifests'; import { manifests as appLanguageSelect } from './app-language-select/manifests'; +import { manifests as modalManifests } from './modals/manifests'; export const manifests = [ ...repositoryManifests, @@ -10,4 +11,5 @@ export const manifests = [ ...treeManifests, ...workspaceManifests, ...appLanguageSelect, + ...modalManifests, ]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/language-picker/language-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/language-picker/language-picker-modal.element.ts index 7063fe673e..9058c494bc 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/language-picker/language-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/language-picker/language-picker-modal.element.ts @@ -65,6 +65,8 @@ export class UmbLanguagePickerModalElement extends UmbModalLayoutPickerBase = [ + { + type: 'modal', + alias: 'Umb.Modal.LanguagePicker', + name: 'Language Picker Modal', + loader: () => import('./language-picker/language-picker-modal.element'), + }, +]; + +export const manifests = [...modals]; From b5b27056bdada77de0a99d878bcdd15dab7bd830 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 20:39:27 +0100 Subject: [PATCH 087/134] register user group picker --- .../components/input-list-base/input-list-base.ts | 5 ----- .../input-user-group/input-user-group.element.ts | 3 ++- .../src/backoffice/users/user-groups/manifests.ts | 3 ++- .../backoffice/users/user-groups/modals/manifests.ts | 12 ++++++++++++ .../user-groups/modals/user-group-picker/index.ts | 11 +++++++++++ .../user-group-picker-modal.element.ts} | 8 +++++--- .../user-group-picker-modal.test.ts} | 0 7 files changed, 32 insertions(+), 10 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/user-group-picker/index.ts rename src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/{picker-user-group/picker-layout-user-group.element.ts => user-group-picker/user-group-picker-modal.element.ts} (91%) rename src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/{picker-user-group/picker-layout-user-group.test.ts => user-group-picker/user-group-picker-modal.test.ts} (100%) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts index a08e7e0e6b..a1565ff90c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts @@ -3,11 +3,6 @@ import { property } from 'lit/decorators.js'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; import { UmbPickerModalData } from '../../../../../libs/modal/layouts/modal-layout-picker-base'; import { UmbModalContext, UmbModalToken, UmbModalType, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../libs/modal'; - -//TODO: These should probably be imported dynamically. -import '../../modals/section-picker/section-picker-modal.element'; -import '../../../users/user-groups/modals/picker-user-group/picker-layout-user-group.element'; -import '../../../users/users/modals/user-picker/user-picker-modal.element'; import { UmbLitElement } from '@umbraco-cms/element'; /** TODO: Make use of UUI FORM Mixin, to make it easily take part of a form. */ diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-user-group/input-user-group.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-user-group/input-user-group.element.ts index 37fa53d7d5..8bbe14fe27 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-user-group/input-user-group.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-user-group/input-user-group.element.ts @@ -8,6 +8,7 @@ import { } from '../../../users/user-groups/repository/user-group.store'; import type { UserGroupEntity } from '@umbraco-cms/models'; +import { UMB_USER_GROUP_PICKER_MODAL_TOKEN } from 'src/backoffice/users/user-groups/modals/user-group-picker'; @customElement('umb-input-user-group') export class UmbInputPickerUserGroupElement extends UmbInputListBase { @@ -47,7 +48,7 @@ export class UmbInputPickerUserGroupElement extends UmbInputListBase { connectedCallback(): void { super.connectedCallback(); - this.pickerLayout = 'umb-picker-layout-user-group'; + this.pickerToken = UMB_USER_GROUP_PICKER_MODAL_TOKEN; this.consumeContext(UMB_USER_GROUP_STORE_CONTEXT_TOKEN, (usersContext) => { this._userGroupStore = usersContext; this._observeUserGroups(); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/manifests.ts index 8fe0fae0b0..dd709645d0 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/manifests.ts @@ -1,4 +1,5 @@ import { manifests as repositoryManifests } from './repository/manifests'; import { manifests as workspaceManifests } from './workspace/manifests'; +import { manifests as modalManifests } from './modals/manifests'; -export const manifests = [...repositoryManifests, ...workspaceManifests]; +export const manifests = [...repositoryManifests, ...workspaceManifests, ...modalManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/manifests.ts new file mode 100644 index 0000000000..afd2fe55b9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/manifests.ts @@ -0,0 +1,12 @@ +import type { ManifestModal } from '@umbraco-cms/extensions-registry'; + +const modals: Array = [ + { + type: 'modal', + alias: 'Umb.Modal.UserGroupPicker', + name: 'User Group Picker Modal', + loader: () => import('./user-group-picker/user-group-picker-modal.element'), + }, +]; + +export const manifests = [...modals]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/user-group-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/user-group-picker/index.ts new file mode 100644 index 0000000000..63e485de09 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/user-group-picker/index.ts @@ -0,0 +1,11 @@ +import type { UserDetails } from '@umbraco-cms/models'; +import { UmbModalToken } from 'libs/modal'; +import type { UmbPickerModalData } from 'libs/modal/layouts/modal-layout-picker-base'; + +export const UMB_USER_GROUP_PICKER_MODAL_TOKEN = new UmbModalToken>( + 'Umb.Modal.UserGroupPicker', + { + type: 'sidebar', + size: 'small', + } +); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/picker-user-group/picker-layout-user-group.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/user-group-picker/user-group-picker-modal.element.ts similarity index 91% rename from src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/picker-user-group/picker-layout-user-group.element.ts rename to src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/user-group-picker/user-group-picker-modal.element.ts index 7df0436c16..625c9b1074 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/picker-user-group/picker-layout-user-group.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/user-group-picker/user-group-picker-modal.element.ts @@ -5,8 +5,8 @@ import { UmbModalLayoutPickerBase } from '@umbraco-cms/modal'; import { UmbUserGroupStore, UMB_USER_GROUP_STORE_CONTEXT_TOKEN } from '../../repository/user-group.store'; import type { UserGroupDetails } from '@umbraco-cms/models'; -@customElement('umb-picker-layout-user-group') -export class UmbPickerLayoutUserGroupElement extends UmbModalLayoutPickerBase { +@customElement('umb-user-group-picker-modal') +export class UmbUserGroupPickerModalElement extends UmbModalLayoutPickerBase { static styles = [ UUITextStyles, css` @@ -100,8 +100,10 @@ export class UmbPickerLayoutUserGroupElement extends UmbModalLayoutPickerBase Date: Thu, 9 Mar 2023 20:48:48 +0100 Subject: [PATCH 088/134] temp disable package view modal --- .../installed/installed-packages-section-view-item.element.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts index d39f6766cc..be223217a1 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts @@ -142,11 +142,15 @@ export class UmbInstalledPackagesSectionViewItem extends UmbLitElement { return; } + // TODO: add dedicated modal for package views, and register it in a manifest. + alert('package view modal temporarily disabled. See comment in code.'); + /* this._modalContext?.open(element, { data: { name: this.name, version: this.version }, size: 'full', type: 'sidebar', }); + */ } } From ff8d3a45676adfa1da8b0d4cd1f909395697a341 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 20:50:19 +0100 Subject: [PATCH 089/134] fix story book import --- src/Umbraco.Web.UI.Client/.storybook/preview.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/.storybook/preview.js b/src/Umbraco.Web.UI.Client/.storybook/preview.js index 87af746303..b60bc1c626 100644 --- a/src/Umbraco.Web.UI.Client/.storybook/preview.js +++ b/src/Umbraco.Web.UI.Client/.storybook/preview.js @@ -21,7 +21,7 @@ import { UmbIconStore } from '../libs/store/icon/icon.store'; import { onUnhandledRequest } from '../src/core/mocks/browser'; import { handlers } from '../src/core/mocks/browser-handlers'; import { LitElement } from 'lit'; -import { UMB_MODAL_CONTEXT_TOKEN, UmbModalContext } from '../src/core/modal'; +import { UMB_MODAL_CONTEXT_TOKEN, UmbModalContext } from '../libs/modal'; import { umbExtensionsRegistry } from '../libs/extensions-api'; From dcd9b29881946e1c6ddd3947da39f4526c2344f0 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 21:11:00 +0100 Subject: [PATCH 090/134] fix modal context in storybook --- .../.storybook/preview.js | 19 +++++-------------- ...perty-editor-ui-document-picker.stories.ts | 9 --------- 2 files changed, 5 insertions(+), 23 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/.storybook/preview.js b/src/Umbraco.Web.UI.Client/.storybook/preview.js index b60bc1c626..58216ed450 100644 --- a/src/Umbraco.Web.UI.Client/.storybook/preview.js +++ b/src/Umbraco.Web.UI.Client/.storybook/preview.js @@ -20,8 +20,8 @@ import customElementManifests from '../custom-elements.json'; import { UmbIconStore } from '../libs/store/icon/icon.store'; import { onUnhandledRequest } from '../src/core/mocks/browser'; import { handlers } from '../src/core/mocks/browser-handlers'; -import { LitElement } from 'lit'; import { UMB_MODAL_CONTEXT_TOKEN, UmbModalContext } from '../libs/modal'; +import { UmbLitElement } from '../libs/element'; import { umbExtensionsRegistry } from '../libs/extensions-api'; @@ -30,13 +30,14 @@ import '../src/backoffice/shared/components'; import { manifests as documentManifests } from '../src/backoffice/documents'; -class UmbStoryBookElement extends LitElement { +class UmbStoryBookElement extends UmbLitElement { _umbIconStore = new UmbIconStore(); constructor() { super(); this._umbIconStore.attach(this); this._registerExtensions(documentManifests); + this.provideContext(UMB_MODAL_CONTEXT_TOKEN, new UmbModalContext(this)); } _registerExtensions(manifests) { @@ -47,7 +48,8 @@ class UmbStoryBookElement extends LitElement { } render() { - return html``; + return html` + `; } } @@ -71,16 +73,6 @@ const documentTreeStoreProvider = (story) => html` new UmbDocumentTreeStore(host)}>${story()} `; -const modalContextProvider = (story) => html` - - ${story()} - - -`; - // Initialize MSW initialize({ onUnhandledRequest }); @@ -92,7 +84,6 @@ export const decorators = [ documentTreeStoreProvider, dataTypeStoreProvider, documentTypeStoreProvider, - modalContextProvider, ]; export const parameters = { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/document-picker/property-editor-ui-document-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/document-picker/property-editor-ui-document-picker.stories.ts index f19c26929a..a9eda5c776 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/document-picker/property-editor-ui-document-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/document-picker/property-editor-ui-document-picker.stories.ts @@ -2,21 +2,12 @@ import { Meta, Story } from '@storybook/web-components'; import { html } from 'lit-html'; import type { UmbPropertyEditorUIContentPickerElement } from './property-editor-ui-document-picker.element'; -import { UmbModalContext } from 'libs/modal'; import './property-editor-ui-document-picker.element'; -import '../../../components/backoffice-frame/backoffice-modal-container.element'; export default { title: 'Property Editor UIs/Content Picker', component: 'umb-property-editor-ui-document-picker', id: 'umb-property-editor-ui-document-picker', - decorators: [ - (story) => - html` - ${story()} - - `, - ], } as Meta; export const AAAOverview: Story = () => From 959ceb51274d9ebe7940c7e2daf3e29723abadd5 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 21:14:49 +0100 Subject: [PATCH 091/134] lint fix --- .../libs/extensions-api/registry/extension.registry.ts | 4 ++-- .../libs/extensions-api/umb-lifecycle.interface.ts | 2 +- .../src/backoffice/backoffice.element.ts | 2 +- .../components/log-viewer-date-range-selector.element.ts | 2 +- .../logviewer-root/logviewer-root-workspace.element.ts | 4 ++-- .../search/components/log-viewer-messages-list.element.ts | 4 ++-- .../workspace/views/search/log-search-view.element.ts | 2 +- .../button-with-dropdown/button-with-dropdown.stories.ts | 1 - .../components/debug/modals/debug/debug-modal.element.ts | 2 +- .../input-document-picker/input-document-picker.element.ts | 2 +- .../input-language-picker/input-language-picker.element.ts | 2 +- .../input-media-picker/input-media-picker.element.ts | 2 +- .../property-settings/property-settings-modal.element.ts | 2 +- .../shared/property-creator/property-creator.element.ts | 2 +- .../property-editor-ui-picker-modal.element.ts | 2 +- .../user-group-picker/user-group-picker-modal.element.ts | 2 +- .../users/modals/create-user/create-user-modal.element.ts | 2 +- .../users/modals/invite-user/invite-user-modal.element.ts | 2 +- .../users/modals/user-picker/user-picker-modal.element.ts | 2 +- 19 files changed, 21 insertions(+), 22 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-api/registry/extension.registry.ts b/src/Umbraco.Web.UI.Client/libs/extensions-api/registry/extension.registry.ts index c5e056f35e..14dfe2cc9e 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-api/registry/extension.registry.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-api/registry/extension.registry.ts @@ -1,9 +1,9 @@ import { BehaviorSubject, map, Observable } from 'rxjs'; -import { UmbContextToken } from "@umbraco-cms/context-api"; -import type { UmbControllerHostInterface } from "@umbraco-cms/controller"; import type { ManifestTypes, ManifestTypeMap, ManifestBase, ManifestEntrypoint } from '../../models'; import { loadExtension } from '../load-extension.function'; import { hasInitExport } from "../has-init-export.function"; +import type { UmbControllerHostInterface } from "@umbraco-cms/controller"; +import { UmbContextToken } from "@umbraco-cms/context-api"; type SpecificManifestTypeOrManifestBase = T extends keyof ManifestTypeMap ? ManifestTypeMap[T] diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-api/umb-lifecycle.interface.ts b/src/Umbraco.Web.UI.Client/libs/extensions-api/umb-lifecycle.interface.ts index 8486453312..c90a871320 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-api/umb-lifecycle.interface.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-api/umb-lifecycle.interface.ts @@ -1,5 +1,5 @@ -import type { UmbControllerHostInterface } from "@umbraco-cms/controller"; import type { UmbExtensionRegistry } from "./registry/extension.registry"; +import type { UmbControllerHostInterface } from "@umbraco-cms/controller"; /** * Interface containing supported life-cycle functions for ESModule entrypoints diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/backoffice.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/backoffice.element.ts index 843a5e0242..37f8745b7a 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/backoffice.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/backoffice.element.ts @@ -2,7 +2,6 @@ import { defineElement } from '@umbraco-ui/uui-base/lib/registration'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html } from 'lit'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN } from './users/current-user/current-user.store'; import { UmbCurrentUserHistoryStore, @@ -19,6 +18,7 @@ import { UmbAppLanguageContext, } from './settings/languages/app-language-select/app-language.context'; import { UmbServerExtensionController } from './packages/repository/server-extension.controller'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { createExtensionClass, umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/notification'; import { UmbLitElement } from '@umbraco-cms/element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/components/log-viewer-date-range-selector.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/components/log-viewer-date-range-selector.element.ts index 045bb0f849..7bb8c257ba 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/components/log-viewer-date-range-selector.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/components/log-viewer-date-range-selector.element.ts @@ -1,13 +1,13 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, html } from 'lit'; import { customElement, property, queryAll, state } from 'lit/decorators.js'; +import { query } from 'router-slot'; import { LogViewerDateRange, UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, } from '../../logviewer.context'; import { UmbLitElement } from '@umbraco-cms/element'; -import { query } from 'router-slot'; @customElement('umb-log-viewer-date-range-selector') export class UmbLogViewerDateRangeSelectorElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.ts index fc2f769528..8579ccc331 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.ts @@ -4,12 +4,12 @@ import { css, html, nothing } from 'lit'; import { customElement, state, property } from 'lit/decorators.js'; import { IRoutingInfo } from 'router-slot'; import { UUITextStyles } from '@umbraco-ui/uui-css'; +import { repeat } from 'lit-html/directives/repeat.js'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../logviewer.context'; import { UmbLitElement } from '@umbraco-cms/element'; import { umbExtensionsRegistry, createExtensionElement } from '@umbraco-cms/extensions-api'; import { ManifestWorkspaceView, ManifestWorkspaceViewCollection } from '@umbraco-cms/extensions-registry'; import { UmbRouterSlotInitEvent, UmbRouterSlotChangeEvent } from '@umbraco-cms/router'; -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../logviewer.context'; -import { repeat } from 'lit-html/directives/repeat.js'; //TODO make uui-input accept min and max values @customElement('umb-logviewer-workspace') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-messages-list.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-messages-list.element.ts index 4bccce5cb7..1fc81d55fa 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-messages-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-messages-list.element.ts @@ -1,10 +1,10 @@ -import { DirectionModel, LogMessageModel } from '@umbraco-cms/backend-api'; -import { UmbLitElement } from '@umbraco-cms/element'; import { UUIScrollContainerElement, UUIPaginationElement } from '@umbraco-ui/uui'; import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, html } from 'lit'; import { customElement, query, state } from 'lit/decorators.js'; import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context'; +import { UmbLitElement } from '@umbraco-cms/element'; +import { DirectionModel, LogMessageModel } from '@umbraco-cms/backend-api'; @customElement('umb-log-viewer-messages-list') export class UmbLogViewerMessagesListElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/log-search-view.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/log-search-view.element.ts index 91d032a69e..c9813ae53c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/log-search-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/log-search-view.element.ts @@ -1,8 +1,8 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; -import { UmbLitElement } from '@umbraco-cms/element'; import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../logviewer.context'; +import { UmbLitElement } from '@umbraco-cms/element'; @customElement('umb-log-viewer-search-view') export class UmbLogViewerSearchViewElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/button-with-dropdown/button-with-dropdown.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/button-with-dropdown/button-with-dropdown.stories.ts index 4c73fc1dfa..d42a021c21 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/button-with-dropdown/button-with-dropdown.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/button-with-dropdown/button-with-dropdown.stories.ts @@ -1,4 +1,3 @@ -import './button-with-dropdown.element'; import { Meta, Story } from '@storybook/web-components'; import { html } from 'lit-html'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/modals/debug/debug-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/modals/debug/debug-modal.element.ts index d46d4695b8..6e26495045 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/modals/debug/debug-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/modals/debug/debug-modal.element.ts @@ -1,8 +1,8 @@ import { css, html } from 'lit'; import { customElement } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { UmbModalLayoutElement } from '@umbraco-cms/modal'; import { UmbContextDebuggerModalData } from '.'; +import { UmbModalLayoutElement } from '@umbraco-cms/modal'; @customElement('umb-context-debugger-modal') export default class UmbContextDebuggerModalElement extends UmbModalLayoutElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts index dc09db6157..2143fdba2b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts @@ -6,11 +6,11 @@ import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../libs/modal'; import { UMB_DOCUMENT_TREE_STORE_CONTEXT_TOKEN } from '../../../documents/documents/repository/document.tree.store'; import type { UmbDocumentTreeStore } from '../../../documents/documents/repository/document.tree.store'; +import { UMB_CONFIRM_MODAL_TOKEN } from '../../modals/confirm'; import { UmbLitElement } from '@umbraco-cms/element'; import type { DocumentTreeItemModel, FolderTreeItemModel } from '@umbraco-cms/backend-api'; import type { UmbObserverController } from '@umbraco-cms/observable-api'; import { UMB_DOCUMENT_PICKER_MODAL_TOKEN } from 'src/backoffice/documents/documents/modals/document-picker'; -import { UMB_CONFIRM_MODAL_TOKEN } from '../../modals/confirm'; @customElement('umb-input-document-picker') export class UmbInputDocumentPickerElement extends FormControlMixin(UmbLitElement) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts index 57ef3d4788..65922ebdce 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts @@ -5,11 +5,11 @@ import { ifDefined } from 'lit-html/directives/if-defined.js'; import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../libs/modal'; import { UmbLanguageRepository } from '../../../settings/languages/repository/language.repository'; +import { UMB_CONFIRM_MODAL_TOKEN } from '../../modals/confirm'; import { UmbChangeEvent } from '@umbraco-cms/events'; import { UmbLitElement } from '@umbraco-cms/element'; import type { LanguageModel } from '@umbraco-cms/backend-api'; import type { UmbObserverController } from '@umbraco-cms/observable-api'; -import { UMB_CONFIRM_MODAL_TOKEN } from '../../modals/confirm'; import { UMB_LANGUAGE_PICKER_MODAL_TOKEN } from 'src/backoffice/settings/languages/modals/language-picker'; @customElement('umb-input-language-picker') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts index c9b827d0d5..8a05dd0752 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts @@ -5,11 +5,11 @@ import { ifDefined } from 'lit-html/directives/if-defined.js'; import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../libs/modal'; import { UmbMediaRepository } from '../../../media/media/repository/media.repository'; +import { UMB_CONFIRM_MODAL_TOKEN } from '../../modals/confirm'; import { UmbLitElement } from '@umbraco-cms/element'; import type { EntityTreeItemModel, FolderTreeItemModel } from '@umbraco-cms/backend-api'; import type { UmbObserverController } from '@umbraco-cms/observable-api'; import { UMB_MEDIA_PICKER_MODAL_TOKEN } from 'src/backoffice/media/media/modals/media-picker'; -import { UMB_CONFIRM_MODAL_TOKEN } from '../../modals/confirm'; @customElement('umb-input-media-picker') export class UmbInputMediaPickerElement extends FormControlMixin(UmbLitElement) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/property-settings-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/property-settings-modal.element.ts index c56a3c1970..824c9afc6b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/property-settings-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/property-settings-modal.element.ts @@ -2,8 +2,8 @@ import { UUIBooleanInputEvent, UUIInputEvent, UUISelectEvent } from '@umbraco-ui import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, html, nothing } from 'lit'; import { customElement, state } from 'lit/decorators.js'; -import { UmbModalContext, UmbModalLayoutElement, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UMB_PROPERTY_EDITOR_UI_PICKER_MODAL_TOKEN } from '../../property-editors/modals/property-editor-ui-picker'; +import { UmbModalContext, UmbModalLayoutElement, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { ManifestPropertyEditorUI } from '@umbraco-cms/extensions-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-creator/property-creator.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-creator/property-creator.element.ts index e2ca97bbef..94dc905cbb 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-creator/property-creator.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-creator/property-creator.element.ts @@ -1,8 +1,8 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, html } from 'lit'; import { customElement } from 'lit/decorators.js'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UMB_PROPERTY_SETTINGS_MODAL_TOKEN } from '../modals/property-settings'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UmbLitElement } from '@umbraco-cms/element'; @customElement('umb-property-creator') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts index 899632a230..d0544d24f1 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts @@ -5,10 +5,10 @@ import { repeat } from 'lit/directives/repeat.js'; import { groupBy } from 'lodash-es'; import type { UUIInputEvent } from '@umbraco-ui/uui'; import type { UmbModalHandler } from '../../../../../../libs/modal/modal-handler'; +import { UmbPropertyEditorUIPickerModalData } from '.'; import type { ManifestPropertyEditorUI } from '@umbraco-cms/models'; import { umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; import { UmbLitElement } from '@umbraco-cms/element'; -import { UmbPropertyEditorUIPickerModalData } from '.'; interface GroupedPropertyEditorUIs { [key: string]: Array; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/user-group-picker/user-group-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/user-group-picker/user-group-picker-modal.element.ts index 625c9b1074..22decd21c7 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/user-group-picker/user-group-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/user-group-picker/user-group-picker-modal.element.ts @@ -1,8 +1,8 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; -import { UmbModalLayoutPickerBase } from '@umbraco-cms/modal'; import { UmbUserGroupStore, UMB_USER_GROUP_STORE_CONTEXT_TOKEN } from '../../repository/user-group.store'; +import { UmbModalLayoutPickerBase } from '@umbraco-cms/modal'; import type { UserGroupDetails } from '@umbraco-cms/models'; @customElement('umb-user-group-picker-modal') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/create-user-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/create-user-modal.element.ts index 6ea69efaa7..7c4df99f33 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/create-user-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/create-user-modal.element.ts @@ -2,9 +2,9 @@ import { css, html, nothing } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, query, state } from 'lit/decorators.js'; import { UUIInputPasswordElement } from '@umbraco-ui/uui'; -import { UmbModalLayoutElement } from '@umbraco-cms/modal'; import { UmbInputPickerUserGroupElement } from '../../../../shared/components/input-user-group/input-user-group.element'; import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../repository/user.store'; +import { UmbModalLayoutElement } from '@umbraco-cms/modal'; import type { UserDetails } from '@umbraco-cms/models'; import { UmbNotificationDefaultData, diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/invite-user-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/invite-user-modal.element.ts index c48d683db0..960d274a29 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/invite-user-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/invite-user-modal.element.ts @@ -1,9 +1,9 @@ import { css, html, nothing } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, query, state } from 'lit/decorators.js'; -import { UmbModalLayoutElement } from '@umbraco-cms/modal'; import { UmbInputPickerUserGroupElement } from '../../../../shared/components/input-user-group/input-user-group.element'; import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../repository/user.store'; +import { UmbModalLayoutElement } from '@umbraco-cms/modal'; import type { UserDetails } from '@umbraco-cms/models'; export type UsersViewType = 'list' | 'grid'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/user-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/user-picker-modal.element.ts index 989acb82ec..5aa7e9a29b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/user-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/user-picker-modal.element.ts @@ -1,8 +1,8 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; -import { UmbModalLayoutPickerBase } from '@umbraco-cms/modal'; import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../repository/user.store'; +import { UmbModalLayoutPickerBase } from '@umbraco-cms/modal'; import type { UserDetails } from '@umbraco-cms/models'; @customElement('umb-user-picker-modal') From 124bb8b818cb3858be1c16d1cf09267c6ce00414 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 21:18:17 +0100 Subject: [PATCH 092/134] fix lint errors --- .../src/backoffice/members/member-groups/workspace/manifests.ts | 1 - .../members/repository/sources/member.tree.server.data.ts | 1 - .../views/installed/installed-packages-section-view.element.ts | 2 +- 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/workspace/manifests.ts index da187f5066..74c4fd94d3 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/workspace/manifests.ts @@ -1,4 +1,3 @@ -import { MEMBER_GROUP_REPOSITORY_ALIAS } from '../repository/manifests'; import { UmbSaveWorkspaceAction } from '@umbraco-cms/workspace'; import type { ManifestWorkspace, ManifestWorkspaceAction, ManifestWorkspaceView } from '@umbraco-cms/models'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/members/members/repository/sources/member.tree.server.data.ts b/src/Umbraco.Web.UI.Client/src/backoffice/members/members/repository/sources/member.tree.server.data.ts index 4a73347356..4f4fce08c8 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/members/members/repository/sources/member.tree.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/members/members/repository/sources/member.tree.server.data.ts @@ -1,5 +1,4 @@ import { MemberTreeDataSource } from '.'; -import { ProblemDetailsModel } from '@umbraco-cms/backend-api'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; /** diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view.element.ts index 08449e0cad..7880202c02 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view.element.ts @@ -1,4 +1,4 @@ -import { html, css, nothing } from 'lit'; +import { html, css } from 'lit'; import { customElement, state } from 'lit/decorators.js'; import { repeat } from 'lit/directives/repeat.js'; import { combineLatest } from 'rxjs'; From 464d55519018872d2a4f993a5be43415e4e28932 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 21:24:21 +0100 Subject: [PATCH 093/134] fix lint error --- src/Umbraco.Web.UI.Client/libs/modal/stories/modal.stories.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.stories.ts b/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.stories.ts index ac2166f9c6..a1002bf1cf 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.stories.ts @@ -15,7 +15,7 @@ export default { const Template: Story = (props) => { return html` Under construction - + `; }; From abbfe21d347d163e4a5fffc473bec00b3b7d2da9 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 21:24:39 +0100 Subject: [PATCH 094/134] add lint script to only show errors --- src/Umbraco.Web.UI.Client/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 16befe9624..241ba01e95 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -38,6 +38,7 @@ "backoffice:test:e2e": "npx playwright test", "test:e2e": "npm run auth:test:e2e && npm run backoffice:test:e2e", "lint": "eslint src apps libs e2e", + "lint:errors": "npm run lint -- --quiet", "lint:fix": "npm run lint -- --fix", "format": "prettier 'src/**/*.ts'", "format:fix": "npm run format -- --write", From 016c42ea4af61194f09b294caf8be04677f17802 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 21:40:32 +0100 Subject: [PATCH 095/134] update docs --- .../libs/modal/stories/modal.mdx | 63 ++++++++++++++----- 1 file changed, 49 insertions(+), 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.mdx b/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.mdx index fa40855dc5..ed0aae3113 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.mdx +++ b/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.mdx @@ -23,10 +23,11 @@ A modal is a popup that darkens the background and has focus lock. There are two The UmbModal context can be used to open modals. ```ts -import { html, LitElement } from 'lit'; -import { UmbLitElement } from '@umbraco-cms/element'; +import { LitElement } from 'lit'; +import { UmbElementMixin } from '@umbraco-cms/element'; import { UmbModalContext, UMB_MODAL_CONTEXT_ALIAS } from '@umbraco-cms/modal'; -class MyElement extends UmbLitElement { + +class MyElement extends UmbElementMixin(LitElement) { #modalContext?: UmbModalContext; constructor() { @@ -41,13 +42,13 @@ class MyElement extends UmbLitElement { ### Open a modal -A modal is opened by calling one of the helper methods on the UmbModalContext. The methods will accept an element template and modal options and return an instance of UmbModalHandler. +A modal is opened by calling the open method on the UmbModalContext. The methods will accept a modal token (or extension alias), an optional dataset, and optional modal options .It returns an instance of UmbModalHandler. ```ts import { html, LitElement } from 'lit'; -import { UmbLitElement } from '@umbraco-cms/element'; -import { UmbModalContext, UMB_MODAL_CONTEXT_ALIAS } from './core/services/modal'; -class MyElement extends UmbLitElement { +import { UmbElementMixin } from '@umbraco-cms/element'; +import { UmbModalContext, UMB_MODAL_CONTEXT_ALIAS } from '@umbraco-cms/modal'; +class MyElement extends UmbElementMixin(LitElement) { #modalContext?: UmbModalContext; constructor() { @@ -59,9 +60,11 @@ class MyElement extends UmbLitElement { } #onClick() { - const options = {'options goes here'} - const modalHandler = this.#modalContext?.openDialog('my-dialog'), options); - modalHandler.onClose().then((data) => { + const data = {'data goes here'}; + const options {'options go here'}; + const modalHandler = this.#modalContext?.open(SOME_MODAL_TOKEN), data, options); + + modalHandler?.onClose().then((data) => { // if any data is supplied on close, it will be available here. }); } @@ -72,13 +75,45 @@ class MyElement extends UmbLitElement { } ``` -The dialog template to open: +## Create a custom modal + +### Register in the extension registry + +The manifest + +```json +{ + "type": "modal", + "alias": "My.Modal", + "name": "My Modal", + "js": "../path/to/my-modal.element.js" +} +``` + +### Create a modal token + +A modal token is a string that identifies a modal. It should be the modal extension alias. It is used to open a modal and is also to set default options for the modal. + +```ts +interface MyModalData = { + headline: string; + content: string; +} + +const MY_MODAL_TOKEN = new ModalToken('My.Modal', { + type: 'sidebar', + size: 'small' +}); +``` + +The Modal element ```ts import { html, LitElement } from 'lit'; -import type { UmbModalHandler } from './core/services/modal'; +import { UmbElementMixin } from '@umbraco-cms/element'; +import type { UmbModalHandler } from '@umbraco-cms/modal'; -class MyDialog extends LitElement { +class MyDialog extends UmbElementMixin(LitElement) { // the modal handler will be injected into the element when the modal is opened. @property({ attribute: false }) modalHandler?: UmbModalHandler; @@ -92,7 +127,7 @@ class MyDialog extends LitElement { render() { return html`
-

My Dialog

+

My Modal

`; From 76ac2e92be1ed41585d1a138a3f772ef8d02d04f Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 21:53:44 +0100 Subject: [PATCH 096/134] update imports to make test runner happy --- .../dashboard-redirect-management.element.ts | 2 +- .../uis/icon-picker/property-editor-ui-icon-picker.element.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts index 764e923f9d..c6002bd181 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts @@ -3,10 +3,10 @@ import { css, html, nothing } from 'lit'; import { customElement, state, query, property } from 'lit/decorators.js'; import { UUIButtonState, UUIPaginationElement, UUIPaginationEvent } from '@umbraco-ui/uui'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../libs/modal'; +import { UMB_CONFIRM_MODAL_TOKEN } from '../../../shared/modals/confirm'; import { UmbLitElement } from '@umbraco-cms/element'; import { RedirectManagementResource, RedirectStatusModel, RedirectUrlModel } from '@umbraco-cms/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/resources'; -import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; @customElement('umb-dashboard-redirect-management') export class UmbDashboardRedirectManagementElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts index 1c4b129b89..b8f2869210 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts @@ -2,8 +2,8 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property } from 'lit/decorators.js'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../../libs/modal'; +import { UMB_ICON_PICKER_MODAL_TOKEN } from '../../../modals/icon-picker'; import { UmbLitElement } from '@umbraco-cms/element'; -import { UMB_ICON_PICKER_MODAL_TOKEN } from 'src/backoffice/shared/modals/icon-picker'; /** * @element umb-property-editor-ui-icon-picker From 4e4f66f5a78a4d4173815795c54a831e3314d973 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 22:02:53 +0100 Subject: [PATCH 097/134] fix more imports --- .../input-document-picker/input-document-picker.element.ts | 2 +- .../src/backoffice/shared/modals/icon-picker/index.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts index 2143fdba2b..35a5ddc9f4 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts @@ -7,10 +7,10 @@ import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../libs/mo import { UMB_DOCUMENT_TREE_STORE_CONTEXT_TOKEN } from '../../../documents/documents/repository/document.tree.store'; import type { UmbDocumentTreeStore } from '../../../documents/documents/repository/document.tree.store'; import { UMB_CONFIRM_MODAL_TOKEN } from '../../modals/confirm'; +import { UMB_DOCUMENT_PICKER_MODAL_TOKEN } from '../../../documents/documents/modals/document-picker'; import { UmbLitElement } from '@umbraco-cms/element'; import type { DocumentTreeItemModel, FolderTreeItemModel } from '@umbraco-cms/backend-api'; import type { UmbObserverController } from '@umbraco-cms/observable-api'; -import { UMB_DOCUMENT_PICKER_MODAL_TOKEN } from 'src/backoffice/documents/documents/modals/document-picker'; @customElement('umb-input-document-picker') export class UmbInputDocumentPickerElement extends FormControlMixin(UmbLitElement) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/index.ts index d53160f70a..36d008f297 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/index.ts @@ -1,4 +1,4 @@ -import { UmbModalToken } from 'libs/modal'; +import { UmbModalToken } from '@umbraco-cms/modal'; export interface UmbIconPickerModalData { multiple: boolean; From a222fc50ff236e3a7a5b7eaf9111ef328038831a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 22:04:09 +0100 Subject: [PATCH 098/134] fix import --- .../libs/entity-action/actions/delete/delete.action.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts index f8379677a8..543d1a0b1f 100644 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts +++ b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts @@ -1,8 +1,8 @@ +import { UMB_CONFIRM_MODAL_TOKEN } from '../../../../src/backoffice/shared/modals/confirm'; import { UmbEntityActionBase } from '@umbraco-cms/entity-action'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; -import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; export class UmbDeleteEntityAction< T extends { delete(unique: string): Promise; requestItems(uniques: Array): any } From 0abe373fdaa96cb43f34414ecaaf5d27ccc65038 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 22:20:43 +0100 Subject: [PATCH 099/134] use alias to import modal lib --- .../libs/entity-action/actions/delete/delete.action.ts | 2 +- .../libs/entity-action/actions/trash/trash.action.ts | 4 ++-- .../dashboard-redirect-management.element.ts | 2 +- .../workspace/document-type-workspace.element.ts | 4 ++-- .../document-picker/document-picker-modal.element.ts | 2 +- .../documents/documents/modals/document-picker/index.ts | 2 +- .../media/media/entity-bulk-actions/move/move.action.ts | 2 +- .../media/entity-bulk-actions/trash/trash.action.ts | 2 +- .../backoffice/media/media/modals/media-picker/index.ts | 2 +- .../modals/media-picker/media-picker-modal.element.ts | 3 +-- .../views/created/packages-created-overview.element.ts | 2 +- .../installed-packages-section-view-item.element.ts | 2 +- .../src/backoffice/search/modals/search/index.ts | 2 +- .../backoffice/search/umb-search-header-app.element.ts | 2 +- .../views/modal-views/fields-settings.element.ts | 2 +- .../views/modal-views/fields-viewer.element.ts | 2 +- .../views/section-view-examine-indexers.ts | 9 +++------ .../views/section-view-examine-searchers.ts | 4 +--- .../dashboard-published-status.element.ts | 4 +--- .../views/edit/data-type-workspace-view-edit.element.ts | 2 +- .../workspace/extension-root-workspace.element.ts | 2 +- .../settings/languages/modals/language-picker/index.ts | 2 +- .../backoffice-modal-container.element.ts | 2 +- .../backoffice/shared/components/debug/debug.element.ts | 2 +- .../shared/components/debug/modals/debug/index.ts | 2 +- .../input-document-picker.element.ts | 2 +- .../input-language-picker.element.ts | 2 +- .../shared/components/input-list-base/input-list-base.ts | 9 +++++++-- .../input-media-picker/input-media-picker.element.ts | 2 +- .../input-multi-url-picker.element.ts | 2 +- .../shared/modals/confirm/confirm-modal.element.ts | 2 +- .../modals/icon-picker/icon-picker-modal.element.ts | 2 +- .../src/backoffice/shared/modals/link-picker/index.ts | 2 +- .../modals/link-picker/link-picker-modal.element.ts | 2 +- .../backoffice/shared/modals/property-settings/index.ts | 2 +- .../src/backoffice/shared/modals/section-picker/index.ts | 2 +- .../property-editor-ui-picker-modal.element.ts | 2 +- .../property-editor-ui-icon-picker.element.ts | 2 +- .../input-multiple-text-string-item.element.ts | 2 +- .../dashboard-translation-dictionary.element.ts | 2 +- .../create/create-dictionary-modal-layout.element.ts | 2 +- .../dictionary/entity-actions/create/create.action.ts | 2 +- .../export/export-dictionary-modal-layout.element.ts | 2 +- .../dictionary/entity-actions/export/export.action.ts | 2 +- .../import/import-dictionary-modal-layout.element.ts | 2 +- .../dictionary/entity-actions/import/import.action.ts | 2 +- .../current-user/current-user-header-app.element.ts | 2 +- .../change-password/change-password-modal.element.ts | 2 +- .../users/current-user/modals/change-password/index.ts | 2 +- .../modals/current-user/current-user-modal.element.ts | 2 +- .../users/current-user/modals/current-user/index.ts | 2 +- .../users/user-groups/modals/user-group-picker/index.ts | 3 +-- .../views/users/workspace-view-users-overview.element.ts | 2 +- .../backoffice/users/users/modals/create-user/index.ts | 2 +- .../backoffice/users/users/modals/invite-user/index.ts | 2 +- .../backoffice/users/users/modals/user-picker/index.ts | 3 +-- .../users/users/workspace/user-workspace.element.ts | 2 +- 57 files changed, 67 insertions(+), 72 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts index 543d1a0b1f..70a18c8186 100644 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts +++ b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts @@ -2,7 +2,7 @@ import { UMB_CONFIRM_MODAL_TOKEN } from '../../../../src/backoffice/shared/modal import { UmbEntityActionBase } from '@umbraco-cms/entity-action'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; export class UmbDeleteEntityAction< T extends { delete(unique: string): Promise; requestItems(uniques: Array): any } diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts index 37c7171d12..dd758da70f 100644 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts +++ b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts @@ -1,8 +1,8 @@ +import { UMB_CONFIRM_MODAL_TOKEN } from '../../../../src/backoffice/shared/modals/confirm'; import { UmbEntityActionBase } from '@umbraco-cms/entity-action'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; -import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; export class UmbTrashEntityAction< T extends { trash(unique: Array): Promise; requestTreeItems(uniques: Array): any } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts index c6002bd181..93252ed7ae 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts @@ -2,8 +2,8 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html, nothing } from 'lit'; import { customElement, state, query, property } from 'lit/decorators.js'; import { UUIButtonState, UUIPaginationElement, UUIPaginationEvent } from '@umbraco-ui/uui'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../libs/modal'; import { UMB_CONFIRM_MODAL_TOKEN } from '../../../shared/modals/confirm'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UmbLitElement } from '@umbraco-cms/element'; import { RedirectManagementResource, RedirectStatusModel, RedirectUrlModel } from '@umbraco-cms/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.element.ts index 067d8ad0ff..aff44d23a9 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.element.ts @@ -3,11 +3,11 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; import type { UmbWorkspaceEntityElement } from '../../../shared/components/workspace/workspace-entity-element.interface'; +import { UMB_ICON_PICKER_MODAL_TOKEN } from '../../../shared/modals/icon-picker'; import { UmbWorkspaceDocumentTypeContext } from './document-type-workspace.context'; import type { DocumentTypeModel } from '@umbraco-cms/backend-api'; import { UmbLitElement } from '@umbraco-cms/element'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; -import { UMB_ICON_PICKER_MODAL_TOKEN } from 'src/backoffice/shared/modals/icon-picker'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; @customElement('umb-document-type-workspace') export class UmbDocumentTypeWorkspaceElement extends UmbLitElement implements UmbWorkspaceEntityElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element.ts index a2c784d3f9..3f1287b79e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/document-picker-modal.element.ts @@ -1,8 +1,8 @@ import { css, html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, state } from 'lit/decorators.js'; -import { UmbModalLayoutElement } from '../../../../../../libs/modal/layouts/modal-layout.element'; import { UmbDocumentPickerModalData } from '.'; +import { UmbModalLayoutElement } from '@umbraco-cms/modal'; import type { UmbTreeElement } from 'src/backoffice/shared/components/tree/tree.element'; // TODO: make use of UmbPickerLayoutBase diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/index.ts index 6dd5da0a71..c0075c7963 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/modals/document-picker/index.ts @@ -1,4 +1,4 @@ -import { UmbModalToken } from 'libs/modal'; +import { UmbModalToken } from '@umbraco-cms/modal'; export interface UmbDocumentPickerModalData { multiple?: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/move/move.action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/move/move.action.ts index d6d9e1ec59..8e686dce95 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/move/move.action.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/move/move.action.ts @@ -3,7 +3,7 @@ import { UMB_MEDIA_PICKER_MODAL_TOKEN } from '../../modals/media-picker'; import { UmbEntityBulkActionBase } from '@umbraco-cms/entity-action'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; export class UmbMediaMoveEntityBulkAction extends UmbEntityBulkActionBase { #modalContext?: UmbModalContext; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/trash/trash.action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/trash/trash.action.ts index 8e27884609..b65d9ba3bd 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/trash/trash.action.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/trash/trash.action.ts @@ -3,7 +3,7 @@ import type { UmbMediaRepository } from '../../repository/media.repository'; import { UmbEntityBulkActionBase } from '@umbraco-cms/entity-action'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; export class UmbMediaTrashEntityBulkAction extends UmbEntityBulkActionBase { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/index.ts index c38fa5dc7f..61d95e62fa 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/index.ts @@ -1,4 +1,4 @@ -import { UmbModalToken } from 'libs/modal'; +import { UmbModalToken } from '@umbraco-cms/modal'; export interface UmbMediaPickerModalData { multiple?: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/media-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/media-picker-modal.element.ts index 097925b7ac..f888d8e7f5 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/media-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/media-picker-modal.element.ts @@ -1,10 +1,9 @@ import { css, html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, state } from 'lit/decorators.js'; -import { UmbModalLayoutElement } from '../../../../../../libs/modal/layouts/modal-layout.element'; - import { UmbTreeElement } from '../../../../shared/components/tree/tree.element'; import { UmbMediaPickerModalData } from '.'; +import { UmbModalLayoutElement } from '@umbraco-cms/modal'; @customElement('umb-media-picker-modal') export class UmbMediaPickerModalElement extends UmbModalLayoutElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/created/packages-created-overview.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/created/packages-created-overview.element.ts index 38b6d0a926..4d96391f47 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/created/packages-created-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/created/packages-created-overview.element.ts @@ -6,7 +6,7 @@ import { UUIPaginationEvent } from '@umbraco-ui/uui'; import { PackageDefinitionModel, PackageResource } from '@umbraco-cms/backend-api'; import { UmbLitElement } from '@umbraco-cms/element'; import { tryExecuteAndNotify } from '@umbraco-cms/resources'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; @customElement('umb-packages-created-overview') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts index be223217a1..b9d334117b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts @@ -4,7 +4,7 @@ import { customElement, property, state } from 'lit/decorators.js'; import { firstValueFrom, map } from 'rxjs'; import { UUIButtonState } from '@umbraco-ui/uui'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../../libs/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { createExtensionElement, umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; import type { ManifestPackageView } from '@umbraco-cms/models'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/search/modals/search/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/search/modals/search/index.ts index bb882569b4..9859d03434 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/search/modals/search/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/search/modals/search/index.ts @@ -1,3 +1,3 @@ -import { UmbModalToken } from 'libs/modal'; +import { UmbModalToken } from '@umbraco-cms/modal'; export const UMB_SEARCH_MODAL_TOKEN = new UmbModalToken('Umb.Modal.Search'); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/search/umb-search-header-app.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/search/umb-search-header-app.element.ts index 3e2964f415..64a53e5e3b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/search/umb-search-header-app.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/search/umb-search-header-app.element.ts @@ -1,7 +1,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, CSSResultGroup, html } from 'lit'; import { customElement } from 'lit/decorators.js'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UmbLitElement } from '@umbraco-cms/element'; @customElement('umb-search-header-app') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-settings.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-settings.element.ts index 63d0b916ed..b8a49540e9 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-settings.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-settings.element.ts @@ -1,7 +1,7 @@ import { html, css } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, state } from 'lit/decorators.js'; -import { UmbModalLayoutElement } from '../../../../../../../libs/modal'; +import { UmbModalLayoutElement } from '@umbraco-cms/modal'; export interface UmbModalFieldsSettingsData { name: string; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-viewer.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-viewer.element.ts index fee68a89cc..fc5fc5bcf1 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-viewer.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-viewer.element.ts @@ -1,7 +1,7 @@ import { html, css, nothing } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement } from 'lit/decorators.js'; -import { UmbModalLayoutElement } from '../../../../../../../libs/modal'; +import { UmbModalLayoutElement } from '@umbraco-cms/modal'; import type { SearchResultModel } from '@umbraco-cms/backend-api'; @customElement('umb-modal-layout-fields-viewer') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/section-view-examine-indexers.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/section-view-examine-indexers.ts index 64fa14451c..f5cd2454e4 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/section-view-examine-indexers.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/section-view-examine-indexers.ts @@ -1,18 +1,15 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html, nothing } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; - import { UUIButtonState } from '@umbraco-ui/uui-button'; - -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../../libs/modal'; - -import './section-view-examine-searchers'; - +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { HealthStatusModel, IndexModel, IndexerResource } from '@umbraco-cms/backend-api'; import { UmbLitElement } from '@umbraco-cms/element'; import { tryExecuteAndNotify } from '@umbraco-cms/resources'; import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; +import './section-view-examine-searchers'; + @customElement('umb-dashboard-examine-index') export class UmbDashboardExamineIndexElement extends UmbLitElement { static styles = [ diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/section-view-examine-searchers.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/section-view-examine-searchers.ts index 3e9eab12c0..6fef30e07b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/section-view-examine-searchers.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/section-view-examine-searchers.ts @@ -1,9 +1,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html, nothing } from 'lit'; import { customElement, state, query, property } from 'lit/decorators.js'; - -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../../libs/modal'; - +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { SearchResultModel, SearcherResource, FieldModel } from '@umbraco-cms/backend-api'; import { UmbLitElement } from '@umbraco-cms/element'; import { tryExecuteAndNotify } from '@umbraco-cms/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/published-status/dashboard-published-status.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/published-status/dashboard-published-status.element.ts index 3f0743c169..efda52eeb5 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/published-status/dashboard-published-status.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/published-status/dashboard-published-status.element.ts @@ -2,9 +2,7 @@ import { UUIButtonState } from '@umbraco-ui/uui'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; - -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../libs/modal'; - +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { PublishedCacheResource } from '@umbraco-cms/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/resources'; import { UmbLitElement } from '@umbraco-cms/element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/views/edit/data-type-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/views/edit/data-type-workspace-view-edit.element.ts index 3ca8924d6d..ca4cd8bb9d 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/views/edit/data-type-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/views/edit/data-type-workspace-view-edit.element.ts @@ -1,8 +1,8 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html, nothing } from 'lit'; import { customElement, state } from 'lit/decorators.js'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../../../libs/modal'; import { UmbDataTypeWorkspaceContext } from '../../data-type-workspace.context'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UmbLitElement } from '@umbraco-cms/element'; import type { DataTypeModel } from '@umbraco-cms/backend-api'; import { umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/extensions/workspace/extension-root-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/extensions/workspace/extension-root-workspace.element.ts index 83b122d856..f6dcd29ff3 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/extensions/workspace/extension-root-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/extensions/workspace/extension-root-workspace.element.ts @@ -3,7 +3,7 @@ import { customElement, state } from 'lit/decorators.js'; import { isManifestElementNameType, umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; import type { ManifestBase } from '@umbraco-cms/models'; import { UmbLitElement } from '@umbraco-cms/element'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; @customElement('umb-extension-root-workspace') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/language-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/language-picker/index.ts index 13241af233..ec4437afc1 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/language-picker/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/modals/language-picker/index.ts @@ -1,5 +1,5 @@ import { LanguageModel } from '@umbraco-cms/backend-api'; -import { UmbModalToken } from 'libs/modal'; +import { UmbModalToken } from '@umbraco-cms/modal'; export interface UmbLanguagePickerModalData { multiple?: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice-modal-container.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice-modal-container.element.ts index fa8a6c0091..25b7b60eae 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice-modal-container.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice-modal-container.element.ts @@ -2,7 +2,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, CSSResultGroup, html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; import { repeat } from 'lit/directives/repeat.js'; -import { UmbModalHandler, UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../libs/modal'; +import { UmbModalHandler, UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UmbLitElement } from '@umbraco-cms/element'; @customElement('umb-backoffice-modal-container') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/debug.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/debug.element.ts index 5badf72417..f790057ecf 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/debug.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/debug.element.ts @@ -4,7 +4,7 @@ import { customElement, property, state } from 'lit/decorators.js'; import { UMB_CONTEXT_DEBUGGER_MODAL_TOKEN } from './modals/debug'; import { UmbContextDebugRequest } from '@umbraco-cms/context-api'; import { UmbLitElement } from '@umbraco-cms/element'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; @customElement('umb-debug') export class UmbDebug extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/modals/debug/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/modals/debug/index.ts index 0c90c135a4..2bf39440e8 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/modals/debug/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/modals/debug/index.ts @@ -1,5 +1,5 @@ import { TemplateResult } from 'lit'; -import { UmbModalToken } from 'libs/modal'; +import { UmbModalToken } from '@umbraco-cms/modal'; export interface UmbContextDebuggerModalData { content: TemplateResult | string; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts index 35a5ddc9f4..d6f5e3fd23 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts @@ -3,11 +3,11 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property, state } from 'lit/decorators.js'; import { ifDefined } from 'lit-html/directives/if-defined.js'; import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../libs/modal'; import { UMB_DOCUMENT_TREE_STORE_CONTEXT_TOKEN } from '../../../documents/documents/repository/document.tree.store'; import type { UmbDocumentTreeStore } from '../../../documents/documents/repository/document.tree.store'; import { UMB_CONFIRM_MODAL_TOKEN } from '../../modals/confirm'; import { UMB_DOCUMENT_PICKER_MODAL_TOKEN } from '../../../documents/documents/modals/document-picker'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UmbLitElement } from '@umbraco-cms/element'; import type { DocumentTreeItemModel, FolderTreeItemModel } from '@umbraco-cms/backend-api'; import type { UmbObserverController } from '@umbraco-cms/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts index 65922ebdce..c26d9a6e1d 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts @@ -3,9 +3,9 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property, state } from 'lit/decorators.js'; import { ifDefined } from 'lit-html/directives/if-defined.js'; import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../libs/modal'; import { UmbLanguageRepository } from '../../../settings/languages/repository/language.repository'; import { UMB_CONFIRM_MODAL_TOKEN } from '../../modals/confirm'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UmbChangeEvent } from '@umbraco-cms/events'; import { UmbLitElement } from '@umbraco-cms/element'; import type { LanguageModel } from '@umbraco-cms/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts index a1565ff90c..977d666b3c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts @@ -1,8 +1,13 @@ import { html } from 'lit'; import { property } from 'lit/decorators.js'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; -import { UmbPickerModalData } from '../../../../../libs/modal/layouts/modal-layout-picker-base'; -import { UmbModalContext, UmbModalToken, UmbModalType, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../libs/modal'; +import { + UmbModalContext, + UmbModalToken, + UmbModalType, + UMB_MODAL_CONTEXT_TOKEN, + UmbPickerModalData, +} from '@umbraco-cms/modal'; import { UmbLitElement } from '@umbraco-cms/element'; /** TODO: Make use of UUI FORM Mixin, to make it easily take part of a form. */ diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts index 8a05dd0752..e291cf66b7 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts @@ -3,9 +3,9 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property, state } from 'lit/decorators.js'; import { ifDefined } from 'lit-html/directives/if-defined.js'; import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../libs/modal'; import { UmbMediaRepository } from '../../../media/media/repository/media.repository'; import { UMB_CONFIRM_MODAL_TOKEN } from '../../modals/confirm'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UmbLitElement } from '@umbraco-cms/element'; import type { EntityTreeItemModel, FolderTreeItemModel } from '@umbraco-cms/backend-api'; import type { UmbObserverController } from '@umbraco-cms/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-multi-url-picker/input-multi-url-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-multi-url-picker/input-multi-url-picker.element.ts index 93f38264c2..1b622b11a1 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-multi-url-picker/input-multi-url-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-multi-url-picker/input-multi-url-picker.element.ts @@ -5,7 +5,7 @@ import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; import { UMB_LINK_PICKER_MODAL_TOKEN } from '../../modals/link-picker'; import { UmbLitElement } from '@umbraco-cms/element'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; export interface MultiUrlData { icon?: string; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts index a3c1892eb4..79dfed95af 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts @@ -1,7 +1,7 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement } from 'lit/decorators.js'; -import { UmbModalLayoutElement } from '../../../../../libs/modal/layouts/modal-layout.element'; +import { UmbModalLayoutElement } from '@umbraco-cms/modal'; import { UmbConfirmModalData } from '.'; @customElement('umb-confirm-modal') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts index 9d78a25378..fd536c8cfe 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts @@ -4,7 +4,7 @@ import { css, html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property, state } from 'lit/decorators.js'; import { styleMap } from 'lit/directives/style-map.js'; -import { UmbModalLayoutElement } from '../../../../../libs/modal/layouts/modal-layout.element'; +import { UmbModalLayoutElement } from '@umbraco-cms/modal'; import icons from '../../../../../public-assets/icons/icons.json'; import { UmbIconPickerModalData } from '.'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/index.ts index 5de689e5a4..bcc4cdfc13 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/index.ts @@ -1,5 +1,5 @@ import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; -import { UmbModalToken } from 'libs/modal'; +import { UmbModalToken } from '@umbraco-cms/modal'; export interface UmbLinkPickerModalData { link: UmbLinkPickerLink; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/link-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/link-picker-modal.element.ts index 9b5ee06650..669c2a5f09 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/link-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/link-picker-modal.element.ts @@ -2,7 +2,7 @@ import { css, html, nothing } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, query, state } from 'lit/decorators.js'; import { UUIBooleanInputEvent, UUIInputElement } from '@umbraco-ui/uui'; -import { UmbModalLayoutElement } from '../../../../../libs/modal/layouts/modal-layout.element'; +import { UmbModalLayoutElement } from '@umbraco-cms/modal'; import { UmbTreeElement } from '../../components/tree/tree.element'; import { UmbLinkPickerConfig, UmbLinkPickerLink, UmbLinkPickerModalData } from '.'; import { buildUdi, getKeyFromUdi } from '@umbraco-cms/utils'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/index.ts index af76b4c80a..fdc32ce7f9 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/index.ts @@ -1,4 +1,4 @@ -import { UmbModalToken } from 'libs/modal'; +import { UmbModalToken } from '@umbraco-cms/modal'; // TODO: add interface for data // PropertyTypeViewModelBaseModel diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/index.ts index bb5fcad076..a7dd0eac98 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/section-picker/index.ts @@ -1,4 +1,4 @@ -import { UmbModalToken } from 'libs/modal'; +import { UmbModalToken } from '@umbraco-cms/modal'; export interface UmbSectionPickerModalData { multiple: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts index d0544d24f1..229c564db6 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts @@ -4,8 +4,8 @@ import { customElement, property, state } from 'lit/decorators.js'; import { repeat } from 'lit/directives/repeat.js'; import { groupBy } from 'lodash-es'; import type { UUIInputEvent } from '@umbraco-ui/uui'; -import type { UmbModalHandler } from '../../../../../../libs/modal/modal-handler'; import { UmbPropertyEditorUIPickerModalData } from '.'; +import type { UmbModalHandler } from '@umbraco-cms/modal'; import type { ManifestPropertyEditorUI } from '@umbraco-cms/models'; import { umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; import { UmbLitElement } from '@umbraco-cms/element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts index b8f2869210..6d996a29ef 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts @@ -1,8 +1,8 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property } from 'lit/decorators.js'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../../libs/modal'; import { UMB_ICON_PICKER_MODAL_TOKEN } from '../../../modals/icon-picker'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UmbLitElement } from '@umbraco-cms/element'; /** diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts index a4fabcff68..74931116f2 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts @@ -4,7 +4,7 @@ import { customElement, property, query } from 'lit/decorators.js'; import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; import { UUIInputEvent } from '@umbraco-ui/uui-input'; import { UUIInputElement } from '@umbraco-ui/uui'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../../../libs/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UmbChangeEvent, UmbInputEvent, UmbDeleteEvent } from '@umbraco-cms/events'; import { UmbLitElement } from '@umbraco-cms/element'; import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dashboards/dictionary/dashboard-translation-dictionary.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dashboards/dictionary/dashboard-translation-dictionary.element.ts index 1d96948836..cc2ddddd6e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dashboards/dictionary/dashboard-translation-dictionary.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dashboards/dictionary/dashboard-translation-dictionary.element.ts @@ -7,7 +7,7 @@ import { UmbDictionaryRepository } from '../../dictionary/repository/dictionary. import { UmbCreateDictionaryModalResultData } from '../../dictionary/entity-actions/create/create-dictionary-modal-layout.element'; import { UmbLitElement } from '@umbraco-cms/element'; import { DictionaryOverviewModel, LanguageModel } from '@umbraco-cms/backend-api'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; @customElement('umb-dashboard-translation-dictionary') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create-dictionary-modal-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create-dictionary-modal-layout.element.ts index 4f648cead6..163ce4450b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create-dictionary-modal-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create-dictionary-modal-layout.element.ts @@ -3,7 +3,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, query } from 'lit/decorators.js'; import { Observable } from 'rxjs'; import { when } from 'lit-html/directives/when.js'; -import { UmbModalLayoutElement } from 'libs/modal'; +import { UmbModalLayoutElement } from '@umbraco-cms/modal'; export interface UmbCreateDictionaryModalData { unique: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create.action.ts index 0be665ac9e..2560f5b2ea 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create.action.ts @@ -8,7 +8,7 @@ import type { UmbCreateDictionaryModalResultData } from './create-dictionary-mod import { UmbEntityActionBase } from '@umbraco-cms/entity-action'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; // TODO: temp import import './create-dictionary-modal-layout.element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export-dictionary-modal-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export-dictionary-modal-layout.element.ts index 9906f3e5af..690cea3993 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export-dictionary-modal-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export-dictionary-modal-layout.element.ts @@ -1,7 +1,7 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, query } from 'lit/decorators.js'; -import { UmbModalLayoutElement } from 'libs/modal'; +import { UmbModalLayoutElement } from '@umbraco-cms/modal'; export interface UmbExportDictionaryModalData { unique: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export.action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export.action.ts index a6d153b2c5..8b50b1b2a9 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export.action.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export.action.ts @@ -4,7 +4,7 @@ import type { UmbExportDictionaryModalResultData } from './export-dictionary-mod import { UmbEntityActionBase } from '@umbraco-cms/entity-action'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import './export-dictionary-modal-layout.element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import-dictionary-modal-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import-dictionary-modal-layout.element.ts index 4d02ef2676..8dffa2d6b5 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import-dictionary-modal-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import-dictionary-modal-layout.element.ts @@ -6,7 +6,7 @@ import { repeat } from 'lit/directives/repeat.js'; import { UmbTreeElement } from '../../../../shared/components/tree/tree.element'; import { UmbDictionaryRepository } from '../../repository/dictionary.repository'; import { DictionaryUploadModel } from '@umbraco-cms/backend-api'; -import { UmbModalLayoutElement } from 'libs/modal'; +import { UmbModalLayoutElement } from '@umbraco-cms/modal'; export interface UmbImportDictionaryModalData { unique: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import.action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import.action.ts index 219d2db945..98a14e6e9e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import.action.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import.action.ts @@ -4,7 +4,7 @@ import type { UmbImportDictionaryModalResultData } from './import-dictionary-mod import { UmbEntityActionBase } from '@umbraco-cms/entity-action'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import './import-dictionary-modal-layout.element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/current-user-header-app.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/current-user-header-app.element.ts index d53306805f..974928025b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/current-user-header-app.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/current-user-header-app.element.ts @@ -4,7 +4,7 @@ import { customElement, state } from 'lit/decorators.js'; import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN } from './current-user.store'; import { UMB_CURRENT_USER_MODAL_TOKEN } from './modals/current-user'; import type { UserDetails } from '@umbraco-cms/models'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UmbLitElement } from '@umbraco-cms/element'; @customElement('umb-current-user-header-app') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts index 852b4d7bf9..7193078552 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts @@ -1,8 +1,8 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, CSSResultGroup, html, nothing } from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { UmbModalHandler } from '../../../../../../libs/modal'; import { UmbChangePasswordModalData } from '.'; +import { UmbModalHandler } from '@umbraco-cms/modal'; import { UmbLitElement } from '@umbraco-cms/element'; @customElement('umb-change-password-modal') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/index.ts index 69c26a274a..6a3504c607 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/index.ts @@ -1,4 +1,4 @@ -import { UmbModalToken } from 'libs/modal'; +import { UmbModalToken } from '@umbraco-cms/modal'; export interface UmbChangePasswordModalData { requireOldPassword: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/current-user-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/current-user-modal.element.ts index 3d7957c002..2864b95e76 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/current-user-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/current-user-modal.element.ts @@ -1,7 +1,6 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, CSSResultGroup, html, nothing } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; -import { UmbModalHandler, UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '../../../../../../libs/modal'; import { UmbCurrentUserHistoryStore, UmbCurrentUserHistoryItem, @@ -9,6 +8,7 @@ import { } from '../../current-user-history.store'; import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN } from '../../current-user.store'; import { UMB_CHANGE_PASSWORD_MODAL_TOKEN } from '../change-password'; +import { UmbModalHandler, UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import type { UserDetails } from '@umbraco-cms/models'; import { UmbLitElement } from '@umbraco-cms/element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/index.ts index 0a04bff545..978eeb535c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/index.ts @@ -1,4 +1,4 @@ -import { UmbModalToken } from 'libs/modal'; +import { UmbModalToken } from '@umbraco-cms/modal'; export const UMB_CURRENT_USER_MODAL_TOKEN = new UmbModalToken('Umb.Modal.CurrentUser', { type: 'sidebar', diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/user-group-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/user-group-picker/index.ts index 63e485de09..b56c013f03 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/user-group-picker/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/modals/user-group-picker/index.ts @@ -1,6 +1,5 @@ import type { UserDetails } from '@umbraco-cms/models'; -import { UmbModalToken } from 'libs/modal'; -import type { UmbPickerModalData } from 'libs/modal/layouts/modal-layout-picker-base'; +import { UmbModalToken, UmbPickerModalData } from '@umbraco-cms/modal'; export const UMB_USER_GROUP_PICKER_MODAL_TOKEN = new UmbModalToken>( 'Umb.Modal.UserGroupPicker', diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-overview.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-overview.element.ts index 6fea9f47c3..659c47e205 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-overview.element.ts @@ -6,7 +6,7 @@ import { UUIPopoverElement } from '@umbraco-ui/uui'; import type { UmbSectionViewUsersElement } from './section-view-users.element'; import { UmbLitElement } from '@umbraco-cms/element'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from 'libs/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import './list-view-layouts/table/workspace-view-users-table.element'; import './list-view-layouts/grid/workspace-view-users-grid.element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/index.ts index 1649867505..7b8ff0d726 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/index.ts @@ -1,4 +1,4 @@ -import { UmbModalToken } from 'libs/modal'; +import { UmbModalToken } from '@umbraco-cms/modal'; export const UMB_CREATE_USER_MODAL_TOKEN = new UmbModalToken('Umb.Modal.CreateUser', { type: 'dialog', diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/index.ts index e5f0c9e3b9..5c9a70ee64 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/index.ts @@ -1,4 +1,4 @@ -import { UmbModalToken } from 'libs/modal'; +import { UmbModalToken } from '@umbraco-cms/modal'; export const UMB_INVITE_USER_MODAL_TOKEN = new UmbModalToken('Umb.Modal.InviteUser', { type: 'dialog', diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/index.ts index 8fa7b90359..501ca347b8 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/user-picker/index.ts @@ -1,6 +1,5 @@ import type { UserDetails } from '@umbraco-cms/models'; -import { UmbModalToken } from 'libs/modal'; -import type { UmbPickerModalData } from 'libs/modal/layouts/modal-layout-picker-base'; +import { UmbModalToken, UmbPickerModalData } from '@umbraco-cms/modal'; export const UMB_USER_PICKER_MODAL_TOKEN = new UmbModalToken>('Umb.Modal.UserPicker', { type: 'sidebar', diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/workspace/user-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/workspace/user-workspace.element.ts index 99838f5a96..3ef980f51e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/workspace/user-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/workspace/user-workspace.element.ts @@ -6,10 +6,10 @@ import { ifDefined } from 'lit/directives/if-defined.js'; import { repeat } from 'lit/directives/repeat.js'; import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN } from '../../current-user/current-user.store'; -import type { UmbModalContext } from '../../../../../libs/modal'; import type { UmbWorkspaceEntityElement } from '../../../shared/components/workspace/workspace-entity-element.interface'; import { UMB_CHANGE_PASSWORD_MODAL_TOKEN } from '../../current-user/modals/change-password'; import { UmbWorkspaceUserContext } from './user-workspace.context'; +import type { UmbModalContext } from '@umbraco-cms/modal'; import { getLookAndColorFromUserStatus } from '@umbraco-cms/utils'; import type { UserDetails } from '@umbraco-cms/models'; From d4f4cc50a0c50e8bc1ad7998b17e593326c6628b Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 9 Mar 2023 22:26:55 +0100 Subject: [PATCH 100/134] update more imports --- .../published-status/dashboard-published-status.element.ts | 2 +- .../components/input-media-picker/input-media-picker.element.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/published-status/dashboard-published-status.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/published-status/dashboard-published-status.element.ts index efda52eeb5..ee8f03c4d0 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/published-status/dashboard-published-status.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/published-status/dashboard-published-status.element.ts @@ -2,11 +2,11 @@ import { UUIButtonState } from '@umbraco-ui/uui'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; +import { UMB_CONFIRM_MODAL_TOKEN } from '../../../shared/modals/confirm'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { PublishedCacheResource } from '@umbraco-cms/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/resources'; import { UmbLitElement } from '@umbraco-cms/element'; -import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; @customElement('umb-dashboard-published-status') export class UmbDashboardPublishedStatusElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts index e291cf66b7..a7ff17863c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts @@ -5,11 +5,11 @@ import { ifDefined } from 'lit-html/directives/if-defined.js'; import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; import { UmbMediaRepository } from '../../../media/media/repository/media.repository'; import { UMB_CONFIRM_MODAL_TOKEN } from '../../modals/confirm'; +import { UMB_MEDIA_PICKER_MODAL_TOKEN } from '../../../media/media/modals/media-picker'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UmbLitElement } from '@umbraco-cms/element'; import type { EntityTreeItemModel, FolderTreeItemModel } from '@umbraco-cms/backend-api'; import type { UmbObserverController } from '@umbraco-cms/observable-api'; -import { UMB_MEDIA_PICKER_MODAL_TOKEN } from 'src/backoffice/media/media/modals/media-picker'; @customElement('umb-input-media-picker') export class UmbInputMediaPickerElement extends FormControlMixin(UmbLitElement) { From b8ae10205a7f610c0256961cb0e13fb3d752667b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 10 Mar 2023 10:11:20 +0100 Subject: [PATCH 101/134] lint fixes --- .../libs/notification/notification.context.ts | 10 ++-------- .../shared/modals/confirm/confirm-modal.element.ts | 2 +- .../modals/icon-picker/icon-picker-modal.element.ts | 2 +- .../modals/link-picker/link-picker-modal.element.ts | 2 +- 4 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/libs/notification/notification.context.ts b/src/Umbraco.Web.UI.Client/libs/notification/notification.context.ts index d48b21678a..e3aad5ccd4 100644 --- a/src/Umbraco.Web.UI.Client/libs/notification/notification.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/notification/notification.context.ts @@ -72,10 +72,7 @@ export class UmbNotificationContext { * @return {*} * @memberof UmbNotificationContext */ - public peek( - color: UmbNotificationColor, - options: UmbNotificationOptions - ): UmbNotificationHandler { + public peek(color: UmbNotificationColor, options: UmbNotificationOptions): UmbNotificationHandler { return this._open({ color, ...options }); } @@ -86,10 +83,7 @@ export class UmbNotificationContext { * @return {*} * @memberof UmbNotificationContext */ - public stay( - color: UmbNotificationColor, - options: UmbNotificationOptions - ): UmbNotificationHandler { + public stay(color: UmbNotificationColor, options: UmbNotificationOptions): UmbNotificationHandler { return this._open({ ...options, color, duration: null }); } } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts index 79dfed95af..41ab16d591 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts @@ -1,8 +1,8 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement } from 'lit/decorators.js'; -import { UmbModalLayoutElement } from '@umbraco-cms/modal'; import { UmbConfirmModalData } from '.'; +import { UmbModalLayoutElement } from '@umbraco-cms/modal'; @customElement('umb-confirm-modal') export class UmbConfirmModalElement extends UmbModalLayoutElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts index fd536c8cfe..d55a4e3496 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts @@ -4,10 +4,10 @@ import { css, html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property, state } from 'lit/decorators.js'; import { styleMap } from 'lit/directives/style-map.js'; -import { UmbModalLayoutElement } from '@umbraco-cms/modal'; import icons from '../../../../../public-assets/icons/icons.json'; import { UmbIconPickerModalData } from '.'; +import { UmbModalLayoutElement } from '@umbraco-cms/modal'; // TODO: Make use of UmbPickerLayoutBase // TODO: to prevent element extension we need to move the Picker logic into a separate class we can reuse across all pickers diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/link-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/link-picker-modal.element.ts index 669c2a5f09..49376b333f 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/link-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/link-picker-modal.element.ts @@ -2,9 +2,9 @@ import { css, html, nothing } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, query, state } from 'lit/decorators.js'; import { UUIBooleanInputEvent, UUIInputElement } from '@umbraco-ui/uui'; -import { UmbModalLayoutElement } from '@umbraco-cms/modal'; import { UmbTreeElement } from '../../components/tree/tree.element'; import { UmbLinkPickerConfig, UmbLinkPickerLink, UmbLinkPickerModalData } from '.'; +import { UmbModalLayoutElement } from '@umbraco-cms/modal'; import { buildUdi, getKeyFromUdi } from '@umbraco-cms/utils'; @customElement('umb-link-picker-modal') From 98cfed29d8efab1ccc682c2b4bbfc0e01bc2e2ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 10 Mar 2023 10:11:30 +0100 Subject: [PATCH 102/134] rename layout to modal element --- .../libs/modal/modal-handler.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts index 16384079f3..163358ac20 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts @@ -72,16 +72,16 @@ export class UmbModalHandler { return modalDialogElement; } - async #createLayoutElement(manifest: ManifestModal, data?: unknown) { - // TODO: add fallback element if no layout is found - const layoutElement = (await createExtensionElement(manifest)) as any; + async #createModalElement(manifest: ManifestModal, data?: unknown) { + // TODO: add fallback element if no modal element is found + const modalElement = (await createExtensionElement(manifest)) as any; - if (layoutElement) { - layoutElement.data = data; - layoutElement.modalHandler = this; + if (modalElement) { + modalElement.data = data; + modalElement.modalHandler = this; } - return layoutElement; + return modalElement; } public close(...args: any) { @@ -103,7 +103,7 @@ export class UmbModalHandler { umbExtensionsRegistry.getByTypeAndAlias('modal', modalAlias), async (manifest) => { if (manifest) { - const element = await this.#createLayoutElement(manifest, data); + const element = await this.#createModalElement(manifest, data); this.#appendModalElement(element); this.#element.next(element); } else { From 45c01bed6a9a3a727b4807f23d8d7afee4d9c492 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 10 Mar 2023 10:12:23 +0100 Subject: [PATCH 103/134] move #element data setters --- src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts index 163358ac20..150743c379 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts @@ -105,10 +105,8 @@ export class UmbModalHandler { if (manifest) { const element = await this.#createModalElement(manifest, data); this.#appendModalElement(element); - this.#element.next(element); } else { this.#removeModalElement(); - this.#element.next(undefined); } } ); @@ -116,11 +114,13 @@ export class UmbModalHandler { #appendModalElement(element: any) { this.#innerElement?.appendChild(element); + this.#element.next(element); } #removeModalElement() { if (this.#element.getValue()) { this.#innerElement?.removeChild(this.#element.getValue()); + this.#element.next(undefined); } } } From 39fa514b545ff188e4e231d7a7e2fdb93acc3a6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 10 Mar 2023 10:28:52 +0100 Subject: [PATCH 104/134] rename the modal element to modalElement. --- .../libs/modal/modal-handler.ts | 40 +++++++++---------- .../libs/modal/modal.context.ts | 8 ++-- .../backoffice-modal-container.element.ts | 2 +- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts index 150743c379..197a586b48 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts @@ -16,12 +16,12 @@ export class UmbModalHandler { private _closePromise: any; #host: UmbControllerHostInterface; - public containerElement: UUIModalDialogElement | UUIModalSidebarElement; + public modalElement: UUIModalDialogElement | UUIModalSidebarElement; #element = new BehaviorSubject(undefined); public readonly element = this.#element.asObservable(); - #innerElement?: UUIModalSidebarElement | UUIDialogElement; + #modalElement?: UUIModalSidebarElement | UUIDialogElement; public key: string; public type: UmbModalType = 'dialog'; @@ -49,7 +49,7 @@ export class UmbModalHandler { this._closeResolver = resolve; }); - this.containerElement = this.#createContainerElement(); + this.modalElement = this.#createContainerElement(); this.#observeModal(modalAlias.toString(), data); } @@ -59,7 +59,7 @@ export class UmbModalHandler { #createSidebarElement() { const sidebarElement = document.createElement('uui-modal-sidebar'); - this.#innerElement = sidebarElement; + this.#modalElement = sidebarElement; sidebarElement.size = this.size; return sidebarElement; } @@ -67,26 +67,26 @@ export class UmbModalHandler { #createDialogElement() { const modalDialogElement = document.createElement('uui-modal-dialog'); const dialogElement: UUIDialogElement = document.createElement('uui-dialog'); - this.#innerElement = dialogElement; + this.#modalElement = dialogElement; modalDialogElement.appendChild(dialogElement); return modalDialogElement; } - async #createModalElement(manifest: ManifestModal, data?: unknown) { - // TODO: add fallback element if no modal element is found - const modalElement = (await createExtensionElement(manifest)) as any; + async #createInnerElement(manifest: ManifestModal, data?: unknown) { + // TODO: add inner fallback element if no extension element is found + const innerElement = (await createExtensionElement(manifest)) as any; - if (modalElement) { - modalElement.data = data; - modalElement.modalHandler = this; + if (innerElement) { + innerElement.data = data; + innerElement.modalHandler = this; } - return modalElement; + return innerElement; } public close(...args: any) { this._closeResolver(...args); - this.containerElement.close(); + this.modalElement.close(); } public onClose(): Promise { @@ -103,23 +103,23 @@ export class UmbModalHandler { umbExtensionsRegistry.getByTypeAndAlias('modal', modalAlias), async (manifest) => { if (manifest) { - const element = await this.#createModalElement(manifest, data); - this.#appendModalElement(element); + const element = await this.#createInnerElement(manifest, data); + this.#appendInnerElement(element); } else { - this.#removeModalElement(); + this.#removeInnerElement(); } } ); } - #appendModalElement(element: any) { - this.#innerElement?.appendChild(element); + #appendInnerElement(element: any) { + this.#modalElement?.appendChild(element); this.#element.next(element); } - #removeModalElement() { + #removeInnerElement() { if (this.#element.getValue()) { - this.#innerElement?.removeChild(this.#element.getValue()); + this.#modalElement?.removeChild(this.#element.getValue()); this.#element.next(undefined); } } diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 646c9c4c8b..21c3b91bfd 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -55,10 +55,10 @@ export class UmbModalContext { requestAnimationFrame(() => { dialog.showModal(); }); - modalHandler.containerElement = dialog as unknown as UUIModalDialogElement; + modalHandler.modalElement = dialog as unknown as UUIModalDialogElement; //TODO END - modalHandler.containerElement.addEventListener('close-end', () => this.#onCloseEnd(modalHandler)); + modalHandler.modalElement.addEventListener('close-end', () => this.#onCloseEnd(modalHandler)); this.#modals.next([...this.#modals.getValue(), modalHandler]); return modalHandler; @@ -75,7 +75,7 @@ export class UmbModalContext { public open(modalAlias: string | UmbModalToken, data?: T, config?: UmbModalConfig): UmbModalHandler { const modalHandler = new UmbModalHandler(this.host, modalAlias, data, config); - modalHandler.containerElement.addEventListener('close-end', () => this.#onCloseEnd(modalHandler)); + modalHandler.modalElement.addEventListener('close-end', () => this.#onCloseEnd(modalHandler)); this.#modals.next([...this.#modals.getValue(), modalHandler]); return modalHandler; @@ -98,7 +98,7 @@ export class UmbModalContext { * @memberof UmbModalContext */ #onCloseEnd(modalHandler: UmbModalHandler) { - modalHandler.containerElement.removeEventListener('close-end', () => this.#onCloseEnd(modalHandler)); + modalHandler.modalElement.removeEventListener('close-end', () => this.#onCloseEnd(modalHandler)); this._close(modalHandler.key); } } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice-modal-container.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice-modal-container.element.ts index 25b7b60eae..dd257e3841 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice-modal-container.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice-modal-container.element.ts @@ -41,7 +41,7 @@ export class UmbBackofficeModalContainer extends UmbLitElement { render() { return html` - ${this._modals ? repeat(this._modals, (modalHandler) => html`${modalHandler.containerElement}`) : ''} + ${this._modals ? repeat(this._modals, (modalHandler) => html`${modalHandler.modalElement}`) : ''} `; } From cab5537fbb4952eadabdb8ce6bdd158a10c24e64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 10 Mar 2023 11:08:39 +0100 Subject: [PATCH 105/134] split close and submit callbacks --- .../actions/delete/delete.action.ts | 2 +- .../actions/trash/trash.action.ts | 2 +- .../modal/layouts/modal-layout-picker-base.ts | 4 +- .../libs/modal/modal-handler.ts | 40 +++++++++++++------ .../libs/modal/modal.context.ts | 12 +++++- .../dashboard-redirect-management.element.ts | 4 +- .../document-type-workspace.element.ts | 2 +- .../create-document-modal-layout.element.ts | 4 +- .../entity-actions/create/create.action.ts | 2 +- .../document-picker-modal.element.ts | 4 +- .../entity-bulk-actions/move/move.action.ts | 2 +- .../entity-bulk-actions/trash/trash.action.ts | 2 +- .../media-picker-modal.element.ts | 4 +- .../packages-created-overview.element.ts | 2 +- ...lled-packages-section-view-item.element.ts | 2 +- .../modal-views/fields-settings.element.ts | 2 +- .../modal-views/fields-viewer.element.ts | 2 +- .../views/section-view-examine-indexers.ts | 2 +- .../views/section-view-examine-searchers.ts | 2 +- .../dashboard-published-status.element.ts | 4 +- .../data-type-workspace-view-edit.element.ts | 2 +- .../extension-root-workspace.element.ts | 2 +- .../debug/modals/debug/debug-modal.element.ts | 2 +- .../input-document-picker.element.ts | 4 +- .../input-language-picker.element.ts | 4 +- .../input-list-base/input-list-base.ts | 2 +- .../input-media-picker.element.ts | 4 +- .../input-multi-url-picker.element.ts | 2 +- .../modals/confirm/confirm-modal.element.ts | 4 +- .../icon-picker/icon-picker-modal.element.ts | 4 +- .../link-picker/link-picker-modal.element.ts | 4 +- .../property-settings-modal.element.ts | 12 +++--- .../property-creator.element.ts | 2 +- ...property-editor-ui-picker-modal.element.ts | 4 +- ...input-multiple-text-string-item.element.ts | 2 +- ...ashboard-translation-dictionary.element.ts | 2 +- .../create-dictionary-modal-layout.element.ts | 4 +- .../entity-actions/create/create.action.ts | 2 +- .../export-dictionary-modal-layout.element.ts | 4 +- .../entity-actions/export/export.action.ts | 2 +- .../import-dictionary-modal-layout.element.ts | 4 +- .../entity-actions/import/import.action.ts | 2 +- .../change-password-modal.element.ts | 2 +- .../current-user-modal.element.ts | 2 +- .../create-user/create-user-modal.element.ts | 2 +- .../invite-user/invite-user-modal.element.ts | 2 +- 46 files changed, 102 insertions(+), 80 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts index 70a18c8186..53651b87a4 100644 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts +++ b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts @@ -32,7 +32,7 @@ export class UmbDeleteEntityAction< confirmLabel: 'Delete', }); - const { confirmed } = await modalHandler.onClose(); + const { confirmed } = await modalHandler.onSubmit(); if (confirmed) { await this.repository?.delete(this.unique); } diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts index dd758da70f..a1253b6c86 100644 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts +++ b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts @@ -32,7 +32,7 @@ export class UmbTrashEntityAction< confirmLabel: 'Trash', }); - modalHandler?.onClose().then(({ confirmed }) => { + modalHandler?.onSubmit().then(({ confirmed }) => { if (confirmed) { this.repository?.trash([this.unique]); } diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-picker-base.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-picker-base.ts index c7a85b3748..d3596350d3 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-picker-base.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-picker-base.ts @@ -20,11 +20,11 @@ export class UmbModalLayoutPickerBase extends UmbModalLayoutElement(undefined); - public readonly element = this.#element.asObservable(); + #innerElement = new BehaviorSubject(undefined); + public readonly innerElement = this.#innerElement.asObservable(); #modalElement?: UUIModalSidebarElement | UUIDialogElement; @@ -34,7 +36,7 @@ export class UmbModalHandler { config?: UmbModalConfig ) { this.#host = host; - this.key = uuidv4(); + this.key = config?.key || uuidv4(); if (modalAlias instanceof UmbModalToken) { this.type = modalAlias.getDefaultConfig()?.type || this.type; @@ -45,6 +47,9 @@ export class UmbModalHandler { this.size = config?.size || this.size; // TODO: Consider if its right to use Promises, or use another event based system? Would we need to be able to cancel an event, to then prevent the closing..? + this._submitPromise = new Promise((resolve) => { + this._submitResolver = resolve; + }); this._closePromise = new Promise((resolve) => { this._closeResolver = resolve; }); @@ -77,18 +82,27 @@ export class UmbModalHandler { const innerElement = (await createExtensionElement(manifest)) as any; if (innerElement) { - innerElement.data = data; + innerElement.data = data; // + //innerElement.observable = this.#dataObservable; innerElement.modalHandler = this; } return innerElement; } - public close(...args: any) { - this._closeResolver(...args); + public submit(...args: any) { + this._submitResolver(...args); this.modalElement.close(); } + public close() { + this._submitResolver(); + this.modalElement.close(); + } + + public onSubmit(): Promise { + return this._submitPromise; + } public onClose(): Promise { return this._closePromise; } @@ -96,15 +110,15 @@ export class UmbModalHandler { /* TODO: modals being part of the extension registry know means that a modal element can change over time. It makes this code a bit more complex. The main idea is to have the element as part of the modalHandler so it is possible to dispatch events from within the modal element to the one that opened it. Now when the element is an observable it makes it more complex because this host needs to subscribe to updates to the element, instead of just having a reference to it. - If we find a better generic solution to communicate between the modal and the host, then we can remove the element as part of the modalHandler. */ + If we find a better generic solution to communicate between the modal and the implementor, then we can remove the element as part of the modalHandler. */ #observeModal(modalAlias: string, data?: unknown) { new UmbObserverController( this.#host, umbExtensionsRegistry.getByTypeAndAlias('modal', modalAlias), async (manifest) => { if (manifest) { - const element = await this.#createInnerElement(manifest, data); - this.#appendInnerElement(element); + const innerElement = await this.#createInnerElement(manifest, data); + this.#appendInnerElement(innerElement); } else { this.#removeInnerElement(); } @@ -114,13 +128,13 @@ export class UmbModalHandler { #appendInnerElement(element: any) { this.#modalElement?.appendChild(element); - this.#element.next(element); + this.#innerElement.next(element); } #removeInnerElement() { - if (this.#element.getValue()) { - this.#modalElement?.removeChild(this.#element.getValue()); - this.#element.next(undefined); + if (this.#innerElement.getValue()) { + this.#modalElement?.removeChild(this.#innerElement.getValue()); + this.#innerElement.next(undefined); } } } diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 21c3b91bfd..0e6cf62954 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -12,6 +12,7 @@ import { UmbControllerHostInterface } from '@umbraco-cms/controller'; export type UmbModalType = 'dialog' | 'sidebar'; export interface UmbModalConfig { + key?: string; type?: UmbModalType; size?: UUIModalSidebarSize; } @@ -87,7 +88,14 @@ export class UmbModalContext { * @param {string} key * @memberof UmbModalContext */ - private _close(key: string) { + public close(key: string) { + const modal = this.#modals.getValue().find((modal) => modal.key === key); + if (modal) { + modal.close(); + } + } + + #remove(key: string) { this.#modals.next(this.#modals.getValue().filter((modal) => modal.key !== key)); } @@ -99,7 +107,7 @@ export class UmbModalContext { */ #onCloseEnd(modalHandler: UmbModalHandler) { modalHandler.modalElement.removeEventListener('close-end', () => this.#onCloseEnd(modalHandler)); - this._close(modalHandler.key); + this.#remove(modalHandler.key); } } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts index 93252ed7ae..d4bfbcbc74 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts @@ -140,7 +140,7 @@ export class UmbDashboardRedirectManagementElement extends UmbLitElement { color: 'danger', confirmLabel: 'Delete', }); - modalHandler?.onClose().then(({ confirmed }) => { + modalHandler?.onSubmit().then(({ confirmed }) => { if (confirmed) this._removeRedirect(data); }); } @@ -164,7 +164,7 @@ export class UmbDashboardRedirectManagementElement extends UmbLitElement { color: 'danger', confirmLabel: 'Disable', }); - modalHandler?.onClose().then(({ confirmed }) => { + modalHandler?.onSubmit().then(({ confirmed }) => { if (confirmed) this._toggleRedirect(); }); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.element.ts index aff44d23a9..c1760123ce 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.element.ts @@ -89,7 +89,7 @@ export class UmbDocumentTypeWorkspaceElement extends UmbLitElement implements Um private async _handleIconClick() { const modalHandler = this._modalContext?.open(UMB_ICON_PICKER_MODAL_TOKEN); - modalHandler?.onClose().then((saved) => { + modalHandler?.onSubmit().then((saved) => { if (saved) this._workspaceContext?.setIcon(saved.icon); // TODO save color ALIAS as well }); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/create/create-document-modal-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/create/create-document-modal-layout.element.ts index ff3bf6296b..c9955ce597 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/create/create-document-modal-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/create/create-document-modal-layout.element.ts @@ -16,14 +16,14 @@ export class UmbCreateDocumentModalLayoutElement extends UmbModalLayoutElement { + const deleteConfirmed = await modalHandler?.onSubmit().then(({ confirmed }: any) => { return confirmed; }); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts index b9d334117b..f999b763b0 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts @@ -89,7 +89,7 @@ export class UmbInstalledPackagesSectionViewItem extends UmbLitElement { confirmLabel: 'Run migrations', }); - const migrationConfirmed = await modalHandler?.onClose().then(({ confirmed }: any) => { + const migrationConfirmed = await modalHandler?.onSubmit().then(({ confirmed }: any) => { return confirmed; }); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-settings.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-settings.element.ts index b8a49540e9..c9ca611397 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-settings.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-settings.element.ts @@ -47,7 +47,7 @@ export class UmbModalLayoutFieldsSettingsElement extends UmbModalLayoutElement { + modalHandler?.onSubmit().then(({ confirmed }) => { if (confirmed) this._rebuild(); }); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/section-view-examine-searchers.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/section-view-examine-searchers.ts index 6fef30e07b..1d31250e45 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/section-view-examine-searchers.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/section-view-examine-searchers.ts @@ -178,7 +178,7 @@ export class UmbDashboardExamineSearcherElement extends UmbLitElement { size: 'small', data: { ...this._exposedFields }, }); - modalHandler?.onClose().then(({ fields } = {}) => { + modalHandler?.onSubmit().then(({ fields } = {}) => { if (!fields) return; this._exposedFields = fields; }); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/published-status/dashboard-published-status.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/published-status/dashboard-published-status.element.ts index ee8f03c4d0..5a37dc4df4 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/published-status/dashboard-published-status.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/published-status/dashboard-published-status.element.ts @@ -87,7 +87,7 @@ export class UmbDashboardPublishedStatusElement extends UmbLitElement { color: 'danger', confirmLabel: 'Continue', }); - modalHandler?.onClose().then(({ confirmed }) => { + modalHandler?.onSubmit().then(({ confirmed }) => { if (confirmed) this._reloadMemoryCache(); }); } @@ -110,7 +110,7 @@ export class UmbDashboardPublishedStatusElement extends UmbLitElement { color: 'danger', confirmLabel: 'Continue', }); - modalHandler?.onClose().then(({ confirmed }) => { + modalHandler?.onSubmit().then(({ confirmed }) => { if (confirmed) this._rebuildDatabaseCache(); }); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/views/edit/data-type-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/views/edit/data-type-workspace-view-edit.element.ts index ca4cd8bb9d..5fc1b6b6ef 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/views/edit/data-type-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/views/edit/data-type-workspace-view-edit.element.ts @@ -105,7 +105,7 @@ export class UmbDataTypeWorkspaceViewEditElement extends UmbLitElement { selection: this._propertyEditorUiAlias ? [this._propertyEditorUiAlias] : [], }); - modalHandler?.onClose().then(({ selection } = {}) => { + modalHandler?.onSubmit().then(({ selection } = {}) => { if (!selection) return; this._selectPropertyEditorUI(selection[0]); }); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/extensions/workspace/extension-root-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/extensions/workspace/extension-root-workspace.element.ts index f6dcd29ff3..15c05a776c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/extensions/workspace/extension-root-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/extensions/workspace/extension-root-workspace.element.ts @@ -36,7 +36,7 @@ export class UmbExtensionRootWorkspaceElement extends UmbLitElement { color: 'danger', }); - modalHandler?.onClose().then(({ confirmed }: any) => { + modalHandler?.onSubmit().then(({ confirmed }: any) => { if (confirmed) { umbExtensionsRegistry.unregister(extension.alias); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/modals/debug/debug-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/modals/debug/debug-modal.element.ts index 6e26495045..8c89ab0f5f 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/modals/debug/debug-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/modals/debug/debug-modal.element.ts @@ -55,7 +55,7 @@ export default class UmbContextDebuggerModalElement extends UmbModalLayoutElemen ]; private _handleClose() { - this.modalHandler?.close(); + this.modalHandler?.submit(); } render() { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts index d6f5e3fd23..64f66d21f2 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts @@ -128,7 +128,7 @@ export class UmbInputDocumentPickerElement extends FormControlMixin(UmbLitElemen selection: [...this._selectedKeys], }); - modalHandler?.onClose().then(({ selection }: any) => { + modalHandler?.onSubmit().then(({ selection }: any) => { this._setSelection(selection); }); } @@ -141,7 +141,7 @@ export class UmbInputDocumentPickerElement extends FormControlMixin(UmbLitElemen confirmLabel: 'Remove', }); - modalHandler?.onClose().then(({ confirmed }) => { + modalHandler?.onSubmit().then(({ confirmed }) => { if (confirmed) { const newSelection = this._selectedKeys.filter((value) => value !== item.key); this._setSelection(newSelection); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts index c26d9a6e1d..fffc3eb094 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts @@ -127,7 +127,7 @@ export class UmbInputLanguagePickerElement extends FormControlMixin(UmbLitElemen filter: this.filter, }); - modalHandler?.onClose().then(({ selection }) => { + modalHandler?.onSubmit().then(({ selection }) => { this._setSelection(selection); }); } @@ -140,7 +140,7 @@ export class UmbInputLanguagePickerElement extends FormControlMixin(UmbLitElemen confirmLabel: 'Remove', }); - modalHandler?.onClose().then(({ confirmed }) => { + modalHandler?.onSubmit().then(({ confirmed }) => { if (confirmed) { const newSelection = this._selectedIsoCodes.filter((value) => value !== item.isoCode); this._setSelection(newSelection); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts index 977d666b3c..76ffbb8451 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-list-base/input-list-base.ts @@ -42,7 +42,7 @@ export class UmbInputListBase extends UmbLitElement { selection: this.value, }); - modalHandler?.onClose().then((data: UmbPickerModalData) => { + modalHandler?.onSubmit().then((data: UmbPickerModalData) => { if (data) { this.value = data.selection; this.selectionUpdated(); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts index a7ff17863c..72eddef638 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts @@ -142,7 +142,7 @@ export class UmbInputMediaPickerElement extends FormControlMixin(UmbLitElement) selection: [...this._selectedKeys], }); - modalHandler?.onClose().then(({ selection }: any) => { + modalHandler?.onSubmit().then(({ selection }: any) => { this._setSelection(selection); }); } @@ -155,7 +155,7 @@ export class UmbInputMediaPickerElement extends FormControlMixin(UmbLitElement) confirmLabel: 'Remove', }); - modalHandler?.onClose().then(({ confirmed }) => { + modalHandler?.onSubmit().then(({ confirmed }) => { if (confirmed) { const newSelection = this._selectedKeys.filter((value) => value !== item.key); this._setSelection(newSelection); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-multi-url-picker/input-multi-url-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-multi-url-picker/input-multi-url-picker.element.ts index 1b622b11a1..5bd52be533 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-multi-url-picker/input-multi-url-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-multi-url-picker/input-multi-url-picker.element.ts @@ -161,7 +161,7 @@ export class UmbInputMultiUrlPickerElement extends FormControlMixin(UmbLitElemen overlaySize: this.overlaySize || 'small', }, }); - modalHandler?.onClose().then((newUrl: MultiUrlData) => { + modalHandler?.onSubmit().then((newUrl: MultiUrlData) => { if (!newUrl) return; this._setSelection(newUrl, index); }); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts index 41ab16d591..b367a01e79 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts @@ -9,11 +9,11 @@ export class UmbConfirmModalElement extends UmbModalLayoutElement { + modalHandler?.onSubmit().then(({ selection } = {}) => { if (!selection) return; this._selectedPropertyEditorUIAlias = selection[0]; @@ -273,10 +273,10 @@ export class UmbPropertySettingsModalElement extends UmbModalLayoutElement { }); } - /* TODO: + /* TODO: From Github comment: We should not re-generate the alias when it gets locked again. - Generally the auto generation is not determined by the lock, but wether it has been changed or saved. - The experience in existing backoffice is: we only generate an alias when a property is new, once it has been saved it should never change unless the user actively does so. + Generally the auto generation is not determined by the lock, but wether it has been changed or saved. + The experience in existing backoffice is: we only generate an alias when a property is new, once it has been saved it should never change unless the user actively does so. On new properties, the alias auto-generates until the user has made a change to it. */ #onToggleAliasLock() { this._aliasLocked = !this._aliasLocked; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-creator/property-creator.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-creator/property-creator.element.ts index 94dc905cbb..dacc3558f0 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-creator/property-creator.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-creator/property-creator.element.ts @@ -20,7 +20,7 @@ export class UmbPropertyCreatorElement extends UmbLitElement { #onAddProperty() { const modalHandler = this.#modalContext?.open(UMB_PROPERTY_SETTINGS_MODAL_TOKEN); - modalHandler?.onClose().then((result) => { + modalHandler?.onSubmit().then((result) => { console.log('result', result); }); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts index 229c564db6..72d9439a3b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts @@ -139,11 +139,11 @@ export class UmbPropertyEditorUIPickerModalElement extends UmbLitElement { } private _close() { - this.modalHandler?.close(); + this.modalHandler?.submit(); } private _submit() { - this.modalHandler?.close({ selection: this._selection }); + this.modalHandler?.submit({ selection: this._selection }); } render() { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts index 74931116f2..1c06827cad 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts @@ -73,7 +73,7 @@ export class UmbInputMultipleTextStringItemElement extends FormControlMixin(UmbL confirmLabel: 'Delete', }); - modalHandler?.onClose().then(({ confirmed }: any) => { + modalHandler?.onSubmit().then(({ confirmed }: any) => { if (confirmed) { this.dispatchEvent(new UmbDeleteEvent()); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dashboards/dictionary/dashboard-translation-dictionary.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dashboards/dictionary/dashboard-translation-dictionary.element.ts index cc2ddddd6e..60146057a8 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dashboards/dictionary/dashboard-translation-dictionary.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dashboards/dictionary/dashboard-translation-dictionary.element.ts @@ -162,7 +162,7 @@ export class UmbDashboardTranslationDictionaryElement extends UmbLitElement { }); // TODO: get type from modal result - const { name }: UmbCreateDictionaryModalResultData = await modalHandler.onClose(); + const { name }: UmbCreateDictionaryModalResultData = await modalHandler.onSubmit(); if (!name) return; const result = await this.#repo?.create({ $type: '', name, parentKey: null, translations: [], key: '' }); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create-dictionary-modal-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create-dictionary-modal-layout.element.ts index 163ce4450b..3a828d6dd0 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create-dictionary-modal-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create-dictionary-modal-layout.element.ts @@ -32,7 +32,7 @@ export class UmbCreateDictionaryModalLayoutElement extends UmbModalLayoutElement } #handleCancel() { - this.modalHandler?.close({}); + this.modalHandler?.submit({}); } #submitForm() { @@ -47,7 +47,7 @@ export class UmbCreateDictionaryModalLayoutElement extends UmbModalLayoutElement const formData = new FormData(form); - this.modalHandler?.close({ + this.modalHandler?.submit({ name: formData.get('name') as string, }); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create.action.ts index 2560f5b2ea..a289bf3f4b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create.action.ts @@ -44,7 +44,7 @@ export default class UmbCreateDictionaryEntityAction extends UmbEntityActionBase }); // TODO: get type from modal result - const { name }: UmbCreateDictionaryModalResultData = await modalHandler.onClose(); + const { name }: UmbCreateDictionaryModalResultData = await modalHandler.onSubmit(); if (!name) return; const result = await this.repository?.create({ diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export-dictionary-modal-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export-dictionary-modal-layout.element.ts index 690cea3993..1d3bd2e916 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export-dictionary-modal-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export-dictionary-modal-layout.element.ts @@ -19,7 +19,7 @@ export class UmbExportDictionaryModalLayoutElement extends UmbModalLayoutElement private _form!: HTMLFormElement; #handleClose() { - this.modalHandler?.close({}); + this.modalHandler?.submit({}); } #submitForm() { @@ -34,7 +34,7 @@ export class UmbExportDictionaryModalLayoutElement extends UmbModalLayoutElement const formData = new FormData(form); - this.modalHandler?.close({ includeChildren: (formData.get('includeDescendants') as string) === 'on' }); + this.modalHandler?.submit({ includeChildren: (formData.get('includeDescendants') as string) === 'on' }); } render() { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export.action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export.action.ts index 8b50b1b2a9..97fc59e5aa 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export.action.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export.action.ts @@ -31,7 +31,7 @@ export default class UmbExportDictionaryEntityAction extends UmbEntityActionBase }); // TODO: get type from modal result - const { includeChildren }: UmbExportDictionaryModalResultData = await modalHandler.onClose(); + const { includeChildren }: UmbExportDictionaryModalResultData = await modalHandler.onSubmit(); if (includeChildren === undefined) return; const result = await this.repository?.export(this.unique, includeChildren); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import-dictionary-modal-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import-dictionary-modal-layout.element.ts index 8dffa2d6b5..dfdd2d1343 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import-dictionary-modal-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import-dictionary-modal-layout.element.ts @@ -51,14 +51,14 @@ export class UmbImportDictionaryModalLayoutElement extends UmbModalLayoutElement async #importDictionary() { if (!this._uploadedDictionary?.fileName) return; - this.modalHandler?.close({ + this.modalHandler?.submit({ fileName: this._uploadedDictionary.fileName, parentKey: this._selection[0], }); } #handleClose() { - this.modalHandler?.close({}); + this.modalHandler?.submit({}); } #submitForm() { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import.action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import.action.ts index 98a14e6e9e..c6085defda 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import.action.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import.action.ts @@ -31,7 +31,7 @@ export default class UmbImportDictionaryEntityAction extends UmbEntityActionBase }); // TODO: get type from modal result - const { fileName, parentKey }: UmbImportDictionaryModalResultData = await modalHandler.onClose(); + const { fileName, parentKey }: UmbImportDictionaryModalResultData = await modalHandler.onSubmit(); if (!fileName) return; const result = await this.repository?.import(fileName, parentKey); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts index 7193078552..2440cb743a 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/change-password/change-password-modal.element.ts @@ -32,7 +32,7 @@ export class UmbChangePasswordModalElement extends UmbLitElement { data?: UmbChangePasswordModalData; private _close() { - this.modalHandler?.close(); + this.modalHandler?.submit(); } private _handleSubmit(e: SubmitEvent) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/current-user-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/current-user-modal.element.ts index 2864b95e76..e64252a10d 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/current-user-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/modals/current-user/current-user-modal.element.ts @@ -126,7 +126,7 @@ export class UmbCurrentUserModalElement extends UmbLitElement { } private _close() { - this.modalHandler?.close(); + this.modalHandler?.submit(); } private _edit() { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/create-user-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/create-user-modal.element.ts index 7c4df99f33..07fa5f5e73 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/create-user-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/create-user-modal.element.ts @@ -115,7 +115,7 @@ export class UmbCreateUserModalElement extends UmbModalLayoutElement { } private _closeModal() { - this.modalHandler?.close(); + this.modalHandler?.submit(); } private _resetForm() { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/invite-user-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/invite-user-modal.element.ts index 960d274a29..a5b4857135 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/invite-user-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/invite-user-modal.element.ts @@ -94,7 +94,7 @@ export class UmbInviteUserModalElement extends UmbModalLayoutElement { } private _closeModal() { - this.modalHandler?.close(); + this.modalHandler?.submit(); } private _resetForm() { From dccb042a2579bee1052eb9bc3a12154921cd6697 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 10 Mar 2023 11:55:41 +0100 Subject: [PATCH 106/134] remove redundant confirmed --- .../dashboard-redirect-management.element.ts | 8 ++++---- .../media/entity-bulk-actions/trash/trash.action.ts | 6 ++---- .../views/created/packages-created-overview.element.ts | 6 +----- .../installed-packages-section-view-item.element.ts | 5 +---- .../views/section-view-examine-indexers.ts | 4 ++-- .../dashboard-published-status.element.ts | 8 ++++---- .../workspace/extension-root-workspace.element.ts | 9 +++------ .../input-language-picker.element.ts | 8 +++----- .../input-media-picker/input-media-picker.element.ts | 8 +++----- .../shared/modals/confirm/confirm-modal.element.ts | 6 +++--- .../input-multiple-text-string-item.element.ts | 6 ++---- 11 files changed, 28 insertions(+), 46 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts index d4bfbcbc74..cff6bf9108 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts @@ -140,8 +140,8 @@ export class UmbDashboardRedirectManagementElement extends UmbLitElement { color: 'danger', confirmLabel: 'Delete', }); - modalHandler?.onSubmit().then(({ confirmed }) => { - if (confirmed) this._removeRedirect(data); + modalHandler?.onSubmit().then(() => { + this._removeRedirect(data); }); } @@ -164,8 +164,8 @@ export class UmbDashboardRedirectManagementElement extends UmbLitElement { color: 'danger', confirmLabel: 'Disable', }); - modalHandler?.onSubmit().then(({ confirmed }) => { - if (confirmed) this._toggleRedirect(); + modalHandler?.onSubmit().then(() => { + this._toggleRedirect(); }); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/trash/trash.action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/trash/trash.action.ts index c1dc1e5d18..c4d2a6a7cd 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/trash/trash.action.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/trash/trash.action.ts @@ -38,10 +38,8 @@ export class UmbMediaTrashEntityBulkAction extends UmbEntityBulkActionBase { - return confirmed; - }); - - if (!deleteConfirmed == true) return; + await modalHandler?.onSubmit(); const { error } = await tryExecuteAndNotify(this, PackageResource.deletePackageCreatedByKey({ key: p.key })); if (error) return; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts index f999b763b0..e8ff26a0dd 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts @@ -89,11 +89,8 @@ export class UmbInstalledPackagesSectionViewItem extends UmbLitElement { confirmLabel: 'Run migrations', }); - const migrationConfirmed = await modalHandler?.onSubmit().then(({ confirmed }: any) => { - return confirmed; - }); + await modalHandler?.onSubmit(); - if (!migrationConfirmed == true) return; this._migrationButtonState = 'waiting'; const { error } = await tryExecuteAndNotify( this, diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/section-view-examine-indexers.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/section-view-examine-indexers.ts index da7c466ebb..1fcfb4384d 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/section-view-examine-indexers.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/section-view-examine-indexers.ts @@ -129,8 +129,8 @@ export class UmbDashboardExamineIndexElement extends UmbLitElement { color: 'danger', confirmLabel: 'Rebuild', }); - modalHandler?.onSubmit().then(({ confirmed }) => { - if (confirmed) this._rebuild(); + modalHandler?.onSubmit().then(() => { + this._rebuild(); }); } private async _rebuild() { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/published-status/dashboard-published-status.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/published-status/dashboard-published-status.element.ts index 5a37dc4df4..3d79b89afc 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/published-status/dashboard-published-status.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/published-status/dashboard-published-status.element.ts @@ -87,8 +87,8 @@ export class UmbDashboardPublishedStatusElement extends UmbLitElement { color: 'danger', confirmLabel: 'Continue', }); - modalHandler?.onSubmit().then(({ confirmed }) => { - if (confirmed) this._reloadMemoryCache(); + modalHandler?.onSubmit().then(() => { + this._reloadMemoryCache(); }); } @@ -110,8 +110,8 @@ export class UmbDashboardPublishedStatusElement extends UmbLitElement { color: 'danger', confirmLabel: 'Continue', }); - modalHandler?.onSubmit().then(({ confirmed }) => { - if (confirmed) this._rebuildDatabaseCache(); + modalHandler?.onSubmit().then(() => { + this._rebuildDatabaseCache(); }); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/extensions/workspace/extension-root-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/extensions/workspace/extension-root-workspace.element.ts index 15c05a776c..f53810199b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/extensions/workspace/extension-root-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/extensions/workspace/extension-root-workspace.element.ts @@ -28,7 +28,7 @@ export class UmbExtensionRootWorkspaceElement extends UmbLitElement { }); } - #removeExtension(extension: ManifestBase) { + async #removeExtension(extension: ManifestBase) { const modalHandler = this._modalContext?.open(UMB_CONFIRM_MODAL_TOKEN, { headline: 'Unload extension', confirmLabel: 'Unload', @@ -36,11 +36,8 @@ export class UmbExtensionRootWorkspaceElement extends UmbLitElement { color: 'danger', }); - modalHandler?.onSubmit().then(({ confirmed }: any) => { - if (confirmed) { - umbExtensionsRegistry.unregister(extension.alias); - } - }); + await modalHandler?.onSubmit(); + umbExtensionsRegistry.unregister(extension.alias); } render() { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts index fffc3eb094..4b4bcc091d 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts @@ -140,11 +140,9 @@ export class UmbInputLanguagePickerElement extends FormControlMixin(UmbLitElemen confirmLabel: 'Remove', }); - modalHandler?.onSubmit().then(({ confirmed }) => { - if (confirmed) { - const newSelection = this._selectedIsoCodes.filter((value) => value !== item.isoCode); - this._setSelection(newSelection); - } + modalHandler?.onSubmit().then(() => { + const newSelection = this._selectedIsoCodes.filter((value) => value !== item.isoCode); + this._setSelection(newSelection); }); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts index 72eddef638..8778092f1c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-media-picker/input-media-picker.element.ts @@ -155,11 +155,9 @@ export class UmbInputMediaPickerElement extends FormControlMixin(UmbLitElement) confirmLabel: 'Remove', }); - modalHandler?.onSubmit().then(({ confirmed }) => { - if (confirmed) { - const newSelection = this._selectedKeys.filter((value) => value !== item.key); - this._setSelection(newSelection); - } + modalHandler?.onSubmit().then(() => { + const newSelection = this._selectedKeys.filter((value) => value !== item.key); + this._setSelection(newSelection); }); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts index b367a01e79..7067f0a619 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/confirm-modal.element.ts @@ -1,19 +1,19 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement } from 'lit/decorators.js'; -import { UmbConfirmModalData } from '.'; import { UmbModalLayoutElement } from '@umbraco-cms/modal'; +import { UmbConfirmModalData } from '.'; @customElement('umb-confirm-modal') export class UmbConfirmModalElement extends UmbModalLayoutElement { static styles = [UUITextStyles]; private _handleConfirm() { - this.modalHandler?.submit({ confirmed: true }); + this.modalHandler?.submit(); } private _handleCancel() { - this.modalHandler?.submit({ confirmed: false }); + this.modalHandler?.close(); } render() { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts index 1c06827cad..44ce7f16a8 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts @@ -73,10 +73,8 @@ export class UmbInputMultipleTextStringItemElement extends FormControlMixin(UmbL confirmLabel: 'Delete', }); - modalHandler?.onSubmit().then(({ confirmed }: any) => { - if (confirmed) { - this.dispatchEvent(new UmbDeleteEvent()); - } + modalHandler?.onSubmit().then(() => { + this.dispatchEvent(new UmbDeleteEvent()); }); } From 2353e4b7faeee6666110cdcd7d77632dd6c9555d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 10 Mar 2023 11:56:26 +0100 Subject: [PATCH 107/134] call close from within the modal element --- .../libs/entity-action/actions/delete/delete.action.ts | 6 ++---- .../libs/entity-action/actions/trash/trash.action.ts | 6 ++---- .../libs/modal/layouts/modal-layout-picker-base.ts | 2 +- .../modals/document-picker/document-picker-modal.element.ts | 4 ++-- .../media/modals/media-picker/media-picker-modal.element.ts | 2 +- .../views/modal-views/fields-viewer.element.ts | 2 +- .../components/debug/modals/debug/debug-modal.element.ts | 2 +- .../shared/modals/icon-picker/icon-picker-modal.element.ts | 2 +- .../shared/modals/link-picker/link-picker-modal.element.ts | 2 +- .../property-settings/property-settings-modal.element.ts | 2 +- .../create/create-dictionary-modal-layout.element.ts | 2 +- .../export/export-dictionary-modal-layout.element.ts | 2 +- .../import/import-dictionary-modal-layout.element.ts | 2 +- .../users/modals/create-user/create-user-modal.element.ts | 2 +- .../users/modals/invite-user/invite-user-modal.element.ts | 2 +- 15 files changed, 18 insertions(+), 22 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts index 53651b87a4..e6d9deb818 100644 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts +++ b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts @@ -32,10 +32,8 @@ export class UmbDeleteEntityAction< confirmLabel: 'Delete', }); - const { confirmed } = await modalHandler.onSubmit(); - if (confirmed) { - await this.repository?.delete(this.unique); - } + await modalHandler.onSubmit(); + await this.repository?.delete(this.unique); } } } diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts index a1253b6c86..36ade2fef0 100644 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts +++ b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts @@ -32,10 +32,8 @@ export class UmbTrashEntityAction< confirmLabel: 'Trash', }); - modalHandler?.onSubmit().then(({ confirmed }) => { - if (confirmed) { - this.repository?.trash([this.unique]); - } + modalHandler?.onSubmit().then(() => { + this.repository?.trash([this.unique]); }); } } diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-picker-base.ts b/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-picker-base.ts index d3596350d3..2b18b6f281 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-picker-base.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-picker-base.ts @@ -24,7 +24,7 @@ export class UmbModalLayoutPickerBase extends UmbModalLayoutElement Date: Fri, 10 Mar 2023 11:58:12 +0100 Subject: [PATCH 108/134] call close resolver when closing the modal --- src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts index 0b2d11cf28..25d7156fb8 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts @@ -96,7 +96,7 @@ export class UmbModalHandler { } public close() { - this._submitResolver(); + this._closeResolver(); this.modalElement.close(); } From b7c612679da45db596d3f7e7555af9f3bb1069e2 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 10 Mar 2023 11:58:19 +0100 Subject: [PATCH 109/134] call close --- .../create/create-document-modal-layout.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/create/create-document-modal-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/create/create-document-modal-layout.element.ts index c9955ce597..4ba9aa6b4e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/create/create-document-modal-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/create/create-document-modal-layout.element.ts @@ -16,7 +16,7 @@ export class UmbCreateDocumentModalLayoutElement extends UmbModalLayoutElement Date: Fri, 10 Mar 2023 12:00:16 +0100 Subject: [PATCH 110/134] remove redundant confirmed --- .../input-document-picker.element.ts | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts index 64f66d21f2..b7a16996bc 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-document-picker/input-document-picker.element.ts @@ -133,7 +133,7 @@ export class UmbInputDocumentPickerElement extends FormControlMixin(UmbLitElemen }); } - private _removeItem(item: FolderTreeItemModel) { + private async _removeItem(item: FolderTreeItemModel) { const modalHandler = this._modalContext?.open(UMB_CONFIRM_MODAL_TOKEN, { color: 'danger', headline: `Remove ${item.name}?`, @@ -141,12 +141,9 @@ export class UmbInputDocumentPickerElement extends FormControlMixin(UmbLitElemen confirmLabel: 'Remove', }); - modalHandler?.onSubmit().then(({ confirmed }) => { - if (confirmed) { - const newSelection = this._selectedKeys.filter((value) => value !== item.key); - this._setSelection(newSelection); - } - }); + await modalHandler?.onSubmit(); + const newSelection = this._selectedKeys.filter((value) => value !== item.key); + this._setSelection(newSelection); } private _setSelection(newSelection: Array) { From 7140c483fbf8eb6dd9c2af27b36fb74364a1cf58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 10 Mar 2023 14:38:03 +0100 Subject: [PATCH 111/134] minus n --- src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts index 25d7156fb8..084657305a 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts @@ -107,7 +107,7 @@ export class UmbModalHandler { return this._closePromise; } - /* TODO: modals being part of the extension registry know means that a modal element can change over time. + /* TODO: modals being part of the extension registry now means that a modal element can change over time. It makes this code a bit more complex. The main idea is to have the element as part of the modalHandler so it is possible to dispatch events from within the modal element to the one that opened it. Now when the element is an observable it makes it more complex because this host needs to subscribe to updates to the element, instead of just having a reference to it. If we find a better generic solution to communicate between the modal and the implementor, then we can remove the element as part of the modalHandler. */ From f586c195d171d8726815c6b4402409bbb24ae9e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 10 Mar 2023 14:41:12 +0100 Subject: [PATCH 112/134] dont use the name modal layout for modal content --- .../modal-element-picker-base.ts} | 4 ++-- .../modal-element.element.ts} | 4 ++-- src/Umbraco.Web.UI.Client/libs/modal/index.ts | 4 ++-- .../views/modal-views/fields-settings.element.ts | 6 +++--- .../views/modal-views/fields-viewer.element.ts | 6 +++--- .../views/section-view-examine-searchers.ts | 4 ++-- .../modals/language-picker/language-picker-modal.element.ts | 4 ++-- .../modals/section-picker/section-picker-modal.element.ts | 4 ++-- .../user-group-picker/user-group-picker-modal.element.ts | 4 ++-- .../users/modals/user-picker/user-picker-modal.element.ts | 4 ++-- 10 files changed, 22 insertions(+), 22 deletions(-) rename src/Umbraco.Web.UI.Client/libs/modal/{layouts/modal-layout-picker-base.ts => elements/modal-element-picker-base.ts} (90%) rename src/Umbraco.Web.UI.Client/libs/modal/{layouts/modal-layout.element.ts => elements/modal-element.element.ts} (81%) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-picker-base.ts b/src/Umbraco.Web.UI.Client/libs/modal/elements/modal-element-picker-base.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-picker-base.ts rename to src/Umbraco.Web.UI.Client/libs/modal/elements/modal-element-picker-base.ts index 2b18b6f281..928976f163 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout-picker-base.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/elements/modal-element-picker-base.ts @@ -1,6 +1,6 @@ import { property } from 'lit/decorators.js'; import { UmbModalLayoutElement } from '..'; -import './modal-layout.element'; +import './modal-element.element'; export interface UmbPickerModalData { multiple: boolean; @@ -10,7 +10,7 @@ export interface UmbPickerModalData { // TODO: we should consider moving this into a class/context instead of an element. // So we don't have to extend an element to get basic picker/selection logic -export class UmbModalLayoutPickerBase extends UmbModalLayoutElement> { +export class UmbModalElementPickerBase extends UmbModalLayoutElement> { @property() selection: Array = []; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout.element.ts b/src/Umbraco.Web.UI.Client/libs/modal/elements/modal-element.element.ts similarity index 81% rename from src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout.element.ts rename to src/Umbraco.Web.UI.Client/libs/modal/elements/modal-element.element.ts index bf28bcae3a..b4d932c6dd 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/layouts/modal-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/elements/modal-element.element.ts @@ -2,7 +2,7 @@ import { customElement, property } from 'lit/decorators.js'; import { UmbModalHandler } from '..'; import { UmbLitElement } from '@umbraco-cms/element'; -@customElement('umb-modal-layout') +@customElement('umb-modal-element') export class UmbModalLayoutElement extends UmbLitElement { @property({ attribute: false }) modalHandler?: UmbModalHandler; @@ -13,6 +13,6 @@ export class UmbModalLayoutElement extends UmbLitElement { declare global { interface HTMLElementTagNameMap { - 'umb-modal-layout': UmbModalLayoutElement; + 'umb-modal-element': UmbModalLayoutElement; } } diff --git a/src/Umbraco.Web.UI.Client/libs/modal/index.ts b/src/Umbraco.Web.UI.Client/libs/modal/index.ts index 3085b2f3fa..5882bda117 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/index.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/index.ts @@ -1,5 +1,5 @@ export * from './modal.context'; export * from './modal-handler'; -export * from './layouts/modal-layout.element'; -export * from './layouts/modal-layout-picker-base'; +export * from './elements/modal-element.element'; +export * from './elements/modal-element-picker-base'; export * from './token/modal-token'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-settings.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-settings.element.ts index c9ca611397..964abc046e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-settings.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/modal-views/fields-settings.element.ts @@ -8,8 +8,8 @@ export interface UmbModalFieldsSettingsData { exposed: boolean; } -@customElement('umb-modal-layout-fields-settings') -export class UmbModalLayoutFieldsSettingsElement extends UmbModalLayoutElement { +@customElement('umb-modal-element-fields-settings') +export class UmbModalElementFieldsSettingsElement extends UmbModalLayoutElement { static styles = [ UUITextStyles, css` @@ -92,6 +92,6 @@ export class UmbModalLayoutFieldsSettingsElement extends UmbModalLayoutElement { +@customElement('umb-modal-element-fields-viewer') +export class UmbModalElementFieldsViewerElement extends UmbModalLayoutElement { static styles = [ UUITextStyles, css` @@ -72,6 +72,6 @@ export class UmbModalLayoutFieldsViewerElement extends UmbModalLayoutElementAdd`; } - private _renderItem(link: MultiUrlData, index: number) { + private _renderItem(link: UmbLinkPickerLink, index: number) { return html` { +export class UmbConfirmModalElement extends UmbLitElement { static styles = [UUITextStyles]; + @property({ attribute: false }) + modalHandler?: UmbModalHandler; + + @property({ type: Object }) + data?: UmbConfirmModalData; + private _handleConfirm() { this.modalHandler?.submit(); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/index.ts index 89bf529cc9..eb7a773cc3 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/confirm/index.ts @@ -8,6 +8,11 @@ export interface UmbConfirmModalData { confirmLabel?: string; } -export const UMB_CONFIRM_MODAL_TOKEN = new UmbModalToken('Umb.Modal.Confirm', { - type: 'dialog', -}); +export type UmbConfirmModalResult = undefined; + +export const UMB_CONFIRM_MODAL_TOKEN = new UmbModalToken( + 'Umb.Modal.Confirm', + { + type: 'dialog', + } +); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts index 274056da96..a7de5856ed 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/icon-picker-modal.element.ts @@ -6,13 +6,13 @@ import { customElement, property, state } from 'lit/decorators.js'; import { styleMap } from 'lit/directives/style-map.js'; import icons from '../../../../../public-assets/icons/icons.json'; -import { UmbIconPickerModalData } from '.'; -import { UmbModalLayoutElement } from '@umbraco-cms/modal'; +import { UmbIconPickerModalData, UmbIconPickerModalResult } from '.'; +import { UmbModalBaseElement } from '@umbraco-cms/modal'; // TODO: Make use of UmbPickerLayoutBase // TODO: to prevent element extension we need to move the Picker logic into a separate class we can reuse across all pickers @customElement('umb-icon-picker-modal') -export class UmbIconPickerModalElement extends UmbModalLayoutElement { +export class UmbIconPickerModalElement extends UmbModalBaseElement { static styles = [ UUITextStyles, css` diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/index.ts index 36d008f297..158a3a6a19 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/icon-picker/index.ts @@ -5,7 +5,15 @@ export interface UmbIconPickerModalData { selection: string[]; } -export const UMB_ICON_PICKER_MODAL_TOKEN = new UmbModalToken('Umb.Modal.IconPicker', { - type: 'sidebar', - size: 'small', -}); +export interface UmbIconPickerModalResult { + color: string | undefined; + icon: string | undefined; +} + +export const UMB_ICON_PICKER_MODAL_TOKEN = new UmbModalToken( + 'Umb.Modal.IconPicker', + { + type: 'sidebar', + size: 'small', + } +); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/index.ts index bcc4cdfc13..ecbd202e43 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/index.ts @@ -6,6 +6,8 @@ export interface UmbLinkPickerModalData { config: UmbLinkPickerConfig; } +export type UmbLinkPickerModalResult = UmbLinkPickerLink; + export interface UmbLinkPickerLink { icon?: string | null; name?: string | null; @@ -24,7 +26,10 @@ export interface UmbLinkPickerConfig { overlaySize?: UUIModalSidebarSize; } -export const UMB_LINK_PICKER_MODAL_TOKEN = new UmbModalToken('Umb.Modal.LinkPicker', { - type: 'sidebar', - size: 'small', -}); +export const UMB_LINK_PICKER_MODAL_TOKEN = new UmbModalToken( + 'Umb.Modal.LinkPicker', + { + type: 'sidebar', + size: 'small', + } +); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/link-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/link-picker-modal.element.ts index b9d02dd700..73b31ccc82 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/link-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/link-picker/link-picker-modal.element.ts @@ -3,12 +3,12 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, query, state } from 'lit/decorators.js'; import { UUIBooleanInputEvent, UUIInputElement } from '@umbraco-ui/uui'; import { UmbTreeElement } from '../../components/tree/tree.element'; -import { UmbLinkPickerConfig, UmbLinkPickerLink, UmbLinkPickerModalData } from '.'; -import { UmbModalLayoutElement } from '@umbraco-cms/modal'; +import { UmbLinkPickerConfig, UmbLinkPickerLink, UmbLinkPickerModalData, UmbLinkPickerModalResult } from '.'; +import { UmbModalBaseElement } from '@umbraco-cms/modal'; import { buildUdi, getKeyFromUdi } from '@umbraco-cms/utils'; @customElement('umb-link-picker-modal') -export class UmbLinkPickerModalElement extends UmbModalLayoutElement { +export class UmbLinkPickerModalElement extends UmbModalBaseElement { static styles = [ UUITextStyles, css` diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/index.ts index fdc32ce7f9..c3719e1789 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/index.ts @@ -3,7 +3,24 @@ import { UmbModalToken } from '@umbraco-cms/modal'; // TODO: add interface for data // PropertyTypeViewModelBaseModel -export const UMB_PROPERTY_SETTINGS_MODAL_TOKEN = new UmbModalToken('Umb.Modal.PropertySettings', { - type: 'sidebar', - size: 'small', -}); +export interface UmbPropertySettingsModalResult { + label: string; + alias: string; + description: string; + propertyEditorUI?: string; + labelOnTop: boolean; + validation: { + mandatory: boolean; + mandatoryMessage: string; + pattern: string; + patternMessage: string; + }; +} + +export const UMB_PROPERTY_SETTINGS_MODAL_TOKEN = new UmbModalToken( + 'Umb.Modal.PropertySettings', + { + type: 'sidebar', + size: 'small', + } +); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/property-settings-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/property-settings-modal.element.ts index 845a2621e1..9aa4b3f305 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/property-settings-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/modals/property-settings/property-settings-modal.element.ts @@ -3,12 +3,13 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, html, nothing } from 'lit'; import { customElement, state } from 'lit/decorators.js'; import { UMB_PROPERTY_EDITOR_UI_PICKER_MODAL_TOKEN } from '../../property-editors/modals/property-editor-ui-picker'; -import { UmbModalContext, UmbModalLayoutElement, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; +import { UmbPropertySettingsModalResult } from '.'; +import { UmbModalContext, UmbModalBaseElement, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { ManifestPropertyEditorUI } from '@umbraco-cms/extensions-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; @customElement('umb-property-settings-modal') -export class UmbPropertySettingsModalElement extends UmbModalLayoutElement { +export class UmbPropertySettingsModalElement extends UmbModalBaseElement { static styles = [ UUITextStyles, css` @@ -197,15 +198,15 @@ export class UmbPropertySettingsModalElement extends UmbModalLayoutElement { const formData = new FormData(form); - const label = this._name || null; - const alias = this._alias || null; - const description = formData.get('description'); - const propertyEditorUI = this._selectedPropertyEditorUIAlias || null; + const label = this._name || ''; + const alias = this._alias || ''; + const description = formData.get('description')?.toString() || ''; + const propertyEditorUI = this._selectedPropertyEditorUIAlias || undefined; const labelOnTop = this._appearanceIsTop; const mandatory = this._mandatory; - const mandatoryMessage = formData.get('mandatory-message'); - const pattern = formData.get('pattern'); - const patternMessage = formData.get('pattern-message'); + const mandatoryMessage = formData.get('mandatory-message')?.toString() || ''; + const pattern = formData.get('pattern')?.toString() || ''; + const patternMessage = formData.get('pattern-message')?.toString() || ''; this.modalHandler?.submit({ label, @@ -265,9 +266,9 @@ export class UmbPropertySettingsModalElement extends UmbModalLayoutElement { if (!modalHandler) return; - modalHandler?.onSubmit().then(({ selection } = {}) => { - if (!selection) return; - + modalHandler?.onSubmit().then(({ selection }) => { + if (selection.length === 0) return; + // TODO: we might should set the alias to null or empty string, if no selection. this._selectedPropertyEditorUIAlias = selection[0]; this.#observePropertyEditorUI(); }); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/index.ts index fc01389f3a..74d4587f2e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/index.ts @@ -5,10 +5,14 @@ export interface UmbPropertyEditorUIPickerModalData { submitLabel?: string; } -export const UMB_PROPERTY_EDITOR_UI_PICKER_MODAL_TOKEN = new UmbModalToken( - 'Umb.Modal.PropertyEditorUIPicker', - { - type: 'sidebar', - size: 'small', - } -); +export type UmbPropertyEditorUIPickerModalResult = { + selection: Array; +}; + +export const UMB_PROPERTY_EDITOR_UI_PICKER_MODAL_TOKEN = new UmbModalToken< + UmbPropertyEditorUIPickerModalData, + UmbPropertyEditorUIPickerModalResult +>('Umb.Modal.PropertyEditorUIPicker', { + type: 'sidebar', + size: 'small', +}); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts index 72d9439a3b..c679bfb670 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts @@ -4,7 +4,7 @@ import { customElement, property, state } from 'lit/decorators.js'; import { repeat } from 'lit/directives/repeat.js'; import { groupBy } from 'lodash-es'; import type { UUIInputEvent } from '@umbraco-ui/uui'; -import { UmbPropertyEditorUIPickerModalData } from '.'; +import { UmbPropertyEditorUIPickerModalData, UmbPropertyEditorUIPickerModalResult } from '.'; import type { UmbModalHandler } from '@umbraco-cms/modal'; import type { ManifestPropertyEditorUI } from '@umbraco-cms/models'; import { umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; @@ -79,9 +79,6 @@ export class UmbPropertyEditorUIPickerModalElement extends UmbLitElement { `, ]; - @property({ attribute: false }) - modalHandler?: UmbModalHandler; - @property({ type: Object }) data?: UmbPropertyEditorUIPickerModalData; @@ -139,9 +136,12 @@ export class UmbPropertyEditorUIPickerModalElement extends UmbLitElement { } private _close() { - this.modalHandler?.submit(); + this.modalHandler?.reject(); } + @property({ attribute: false }) + modalHandler?: UmbModalHandler; + private _submit() { this.modalHandler?.submit({ selection: this._selection }); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts index 59d0abd9e4..5b79e28ab6 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts @@ -2,10 +2,8 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property, state } from 'lit/decorators.js'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; -import { - UmbInputMultiUrlPickerElement, - MultiUrlData, -} from '../../../../shared/components/input-multi-url-picker/input-multi-url-picker.element'; +import { UmbInputMultiUrlPickerElement } from '../../../../shared/components/input-multi-url-picker/input-multi-url-picker.element'; +import { UmbLinkPickerLink } from '../../../../shared/modals/link-picker'; import { UmbLitElement } from '@umbraco-cms/element'; import { DataTypePropertyModel } from '@umbraco-cms/backend-api'; @@ -18,7 +16,7 @@ export class UmbPropertyEditorUIMultiUrlPickerElement extends UmbLitElement { static styles = [UUITextStyles]; @property({ type: Array }) - value: MultiUrlData[] = []; + value: UmbLinkPickerLink[] = []; @property({ type: Array, attribute: false }) public set config(config: DataTypePropertyModel[]) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dashboards/dictionary/dashboard-translation-dictionary.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dashboards/dictionary/dashboard-translation-dictionary.element.ts index 60146057a8..38b5625580 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dashboards/dictionary/dashboard-translation-dictionary.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dashboards/dictionary/dashboard-translation-dictionary.element.ts @@ -4,7 +4,10 @@ import { customElement, state } from 'lit/decorators.js'; import { when } from 'lit-html/directives/when.js'; import { UmbTableConfig, UmbTableColumn, UmbTableItem } from '../../../../backoffice/shared/components/table'; import { UmbDictionaryRepository } from '../../dictionary/repository/dictionary.repository'; -import { UmbCreateDictionaryModalResultData } from '../../dictionary/entity-actions/create/create-dictionary-modal-layout.element'; +import { + UmbCreateDictionaryModalResult, + UMB_CREATE_DICTIONARY_MODAL_TOKEN, +} from '../../dictionary/entity-actions/create/'; import { UmbLitElement } from '@umbraco-cms/element'; import { DictionaryOverviewModel, LanguageModel } from '@umbraco-cms/backend-api'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; @@ -156,13 +159,10 @@ export class UmbDashboardTranslationDictionaryElement extends UmbLitElement { // TODO: what to do if modal service is not available? if (!this.#modalContext) return; - const modalHandler = this.#modalContext?.open('umb-create-dictionary-modal-layout', { - type: 'sidebar', - data: { unique: null }, - }); + const modalHandler = this.#modalContext?.open(UMB_CREATE_DICTIONARY_MODAL_TOKEN, { unique: null }); // TODO: get type from modal result - const { name }: UmbCreateDictionaryModalResultData = await modalHandler.onSubmit(); + const { name } = await modalHandler.onSubmit(); if (!name) return; const result = await this.#repo?.create({ $type: '', name, parentKey: null, translations: [], key: '' }); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create-dictionary-modal-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create-dictionary-modal-layout.element.ts index 45074f8f2f..7d2c0535d0 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create-dictionary-modal-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create-dictionary-modal-layout.element.ts @@ -1,21 +1,15 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, query } from 'lit/decorators.js'; -import { Observable } from 'rxjs'; import { when } from 'lit-html/directives/when.js'; -import { UmbModalLayoutElement } from '@umbraco-cms/modal'; +import { UmbCreateDictionaryModalData, UmbCreateDictionaryModalResult } from '.'; +import { UmbModalBaseElement } from '@umbraco-cms/modal'; -export interface UmbCreateDictionaryModalData { - unique: string | null; - parentName: Observable; -} - -export interface UmbCreateDictionaryModalResultData { - name?: string; -} - -@customElement('umb-create-dictionary-modal-layout') -export class UmbCreateDictionaryModalLayoutElement extends UmbModalLayoutElement { +@customElement('umb-create-dictionary-modal') +export class UmbCreateDictionaryModalLayoutElement extends UmbModalBaseElement< + UmbCreateDictionaryModalData, + UmbCreateDictionaryModalResult +> { static styles = [UUITextStyles]; @query('#form') @@ -79,6 +73,6 @@ export class UmbCreateDictionaryModalLayoutElement extends UmbModalLayoutElement declare global { interface HTMLElementTagNameMap { - 'umb-create-dictionary-modal-layout': UmbCreateDictionaryModalLayoutElement; + 'umb-create-dictionary-modal': UmbCreateDictionaryModalLayoutElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create.action.ts index a289bf3f4b..2de1ddc2e9 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create.action.ts @@ -4,7 +4,7 @@ import { UmbSectionSidebarContext, UMB_SECTION_SIDEBAR_CONTEXT_TOKEN, } from '../../../../../backoffice/shared/components/section/section-sidebar/section-sidebar.context'; -import type { UmbCreateDictionaryModalResultData } from './create-dictionary-modal-layout.element'; +import { UMB_CREATE_DICTIONARY_MODAL_TOKEN } from '.'; import { UmbEntityActionBase } from '@umbraco-cms/entity-action'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; @@ -38,13 +38,13 @@ export default class UmbCreateDictionaryEntityAction extends UmbEntityActionBase // TODO: how can we get the current entity detail in the modal? Passing the observable // feels a bit hacky. Works, but hacky. - const modalHandler = this.#modalContext?.open('umb-create-dictionary-modal-layout', { - type: 'sidebar', - data: { unique: this.unique, parentName: this.#sectionSidebarContext.headline }, + const modalHandler = this.#modalContext?.open(UMB_CREATE_DICTIONARY_MODAL_TOKEN, { + unique: this.unique, + parentName: this.#sectionSidebarContext.headline, }); // TODO: get type from modal result - const { name }: UmbCreateDictionaryModalResultData = await modalHandler.onSubmit(); + const { name } = await modalHandler.onSubmit(); if (!name) return; const result = await this.repository?.create({ diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/index.ts new file mode 100644 index 0000000000..32139c6bd6 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/index.ts @@ -0,0 +1,21 @@ +import { Observable } from 'rxjs'; +import { UmbModalToken } from '@umbraco-cms/modal'; + +// TODO: add interface for data +// PropertyTypeViewModelBaseModel +export interface UmbCreateDictionaryModalData { + unique: string | null; + parentName?: Observable; +} + +export interface UmbCreateDictionaryModalResult { + name?: string; +} + +export const UMB_CREATE_DICTIONARY_MODAL_TOKEN = new UmbModalToken< + UmbCreateDictionaryModalData, + UmbCreateDictionaryModalResult +>('Umb.Modal.CreateDictionary', { + type: 'sidebar', + size: 'small', +}); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export-dictionary-modal-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export-dictionary-modal-layout.element.ts index 97ef1e5537..fa0473a81b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export-dictionary-modal-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export-dictionary-modal-layout.element.ts @@ -1,18 +1,14 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, query } from 'lit/decorators.js'; -import { UmbModalLayoutElement } from '@umbraco-cms/modal'; - -export interface UmbExportDictionaryModalData { - unique: string | null; -} - -export interface UmbExportDictionaryModalResultData { - includeChildren?: boolean; -} +import { UmbExportDictionaryModalData, UmbExportDictionaryModalResult } from '.'; +import { UmbModalBaseElement } from '@umbraco-cms/modal'; @customElement('umb-export-dictionary-modal-layout') -export class UmbExportDictionaryModalLayoutElement extends UmbModalLayoutElement { +export class UmbExportDictionaryModalLayoutElement extends UmbModalBaseElement< + UmbExportDictionaryModalData, + UmbExportDictionaryModalResult +> { static styles = [UUITextStyles]; @query('#form') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export.action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export.action.ts index 97fc59e5aa..de6d5bcc4c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export.action.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export.action.ts @@ -1,6 +1,6 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; import { UmbDictionaryRepository } from '../../repository/dictionary.repository'; -import type { UmbExportDictionaryModalResultData } from './export-dictionary-modal-layout.element'; +import { UMB_EXPORT_DICTIONARY_MODAL_TOKEN } from '.'; import { UmbEntityActionBase } from '@umbraco-cms/entity-action'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; @@ -25,13 +25,10 @@ export default class UmbExportDictionaryEntityAction extends UmbEntityActionBase // TODO: what to do if modal service is not available? if (!this.#modalContext) return; - const modalHandler = this.#modalContext?.open('umb-export-dictionary-modal-layout', { - type: 'sidebar', - data: { unique: this.unique }, - }); + const modalHandler = this.#modalContext?.open(UMB_EXPORT_DICTIONARY_MODAL_TOKEN, { unique: this.unique }); // TODO: get type from modal result - const { includeChildren }: UmbExportDictionaryModalResultData = await modalHandler.onSubmit(); + const { includeChildren } = await modalHandler.onSubmit(); if (includeChildren === undefined) return; const result = await this.repository?.export(this.unique, includeChildren); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/index.ts new file mode 100644 index 0000000000..891165f3c0 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/index.ts @@ -0,0 +1,17 @@ +import { UmbModalToken } from '@umbraco-cms/modal'; + +export interface UmbExportDictionaryModalData { + unique: string | null; +} + +export interface UmbExportDictionaryModalResult { + includeChildren?: boolean; +} + +export const UMB_EXPORT_DICTIONARY_MODAL_TOKEN = new UmbModalToken< + UmbExportDictionaryModalData, + UmbExportDictionaryModalResult +>('Umb.Modal.ExportDictionary', { + type: 'sidebar', + size: 'small', +}); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import-dictionary-modal-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import-dictionary-modal-layout.element.ts index 230adc34f3..84b1ff95d4 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import-dictionary-modal-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import-dictionary-modal-layout.element.ts @@ -5,20 +5,15 @@ import { when } from 'lit-html/directives/when.js'; import { repeat } from 'lit/directives/repeat.js'; import { UmbTreeElement } from '../../../../shared/components/tree/tree.element'; import { UmbDictionaryRepository } from '../../repository/dictionary.repository'; +import { UmbImportDictionaryModalData, UmbImportDictionaryModalResult } from '.'; import { DictionaryUploadModel } from '@umbraco-cms/backend-api'; -import { UmbModalLayoutElement } from '@umbraco-cms/modal'; - -export interface UmbImportDictionaryModalData { - unique: string | null; -} - -export interface UmbImportDictionaryModalResultData { - fileName?: string; - parentKey?: string; -} +import { UmbModalBaseElement } from '@umbraco-cms/modal'; @customElement('umb-import-dictionary-modal-layout') -export class UmbImportDictionaryModalLayoutElement extends UmbModalLayoutElement { +export class UmbImportDictionaryModalLayoutElement extends UmbModalBaseElement< + UmbImportDictionaryModalData, + UmbImportDictionaryModalResult +> { static styles = [ UUITextStyles, css` diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import.action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import.action.ts index c6085defda..b8d5d411b2 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import.action.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import.action.ts @@ -1,6 +1,6 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; import { UmbDictionaryRepository } from '../../repository/dictionary.repository'; -import type { UmbImportDictionaryModalResultData } from './import-dictionary-modal-layout.element'; +import { UMB_IMPORT_DICTIONARY_MODAL_TOKEN } from '.'; import { UmbEntityActionBase } from '@umbraco-cms/entity-action'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; @@ -25,13 +25,10 @@ export default class UmbImportDictionaryEntityAction extends UmbEntityActionBase // TODO: what to do if modal service is not available? if (!this.#modalContext) return; - const modalHandler = this.#modalContext?.open('umb-import-dictionary-modal-layout', { - type: 'sidebar', - data: { unique: this.unique }, - }); + const modalHandler = this.#modalContext?.open(UMB_IMPORT_DICTIONARY_MODAL_TOKEN, { unique: this.unique }); // TODO: get type from modal result - const { fileName, parentKey }: UmbImportDictionaryModalResultData = await modalHandler.onSubmit(); + const { fileName, parentKey } = await modalHandler.onSubmit(); if (!fileName) return; const result = await this.repository?.import(fileName, parentKey); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/index.ts new file mode 100644 index 0000000000..41f2b60917 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/index.ts @@ -0,0 +1,20 @@ +import { UmbModalToken } from '@umbraco-cms/modal'; + +// TODO: add interface for data +// PropertyTypeViewModelBaseModel +export interface UmbImportDictionaryModalData { + unique: string | null; +} + +export interface UmbImportDictionaryModalResult { + fileName?: string; + parentKey?: string; +} + +export const UMB_IMPORT_DICTIONARY_MODAL_TOKEN = new UmbModalToken< + UmbImportDictionaryModalData, + UmbImportDictionaryModalResult +>('Umb.Modal.ImportDictionary', { + type: 'sidebar', + size: 'small', +}); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/manifests.ts index 176e975a92..994a4a74fa 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/manifests.ts @@ -4,7 +4,7 @@ import UmbImportDictionaryEntityAction from './import/import.action'; import UmbExportDictionaryEntityAction from './export/export.action'; import UmbCreateDictionaryEntityAction from './create/create.action'; import { UmbDeleteEntityAction, UmbMoveEntityAction } from '@umbraco-cms/entity-action'; -import type { ManifestEntityAction } from '@umbraco-cms/models'; +import type { ManifestEntityAction, ManifestModal } from '@umbraco-cms/models'; const entityType = 'dictionary-item'; const repositoryAlias = DICTIONARY_REPOSITORY_ALIAS; @@ -90,4 +90,25 @@ const entityActions: Array = [ }, ]; -export const manifests = [...entityActions]; +const modals: Array = [ + { + type: 'modal', + alias: 'Umb.Modal.ExamineFieldsSettings', + name: 'Create Dictionary Modal', + loader: () => import('./create/create-dictionary-modal-layout.element'), + }, + { + type: 'modal', + alias: 'Umb.Modal.ExportDictionary', + name: 'Export Dictionary Modal', + loader: () => import('./export/export-dictionary-modal-layout.element'), + }, + { + type: 'modal', + alias: 'Umb.Modal.ImportDictionary', + name: 'Import Dictionary Modal', + loader: () => import('./import/import-dictionary-modal-layout.element'), + }, +]; + +export const manifests = [...entityActions, ...modals]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/create-user-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/create-user-modal.element.ts index 415221d64f..a17a870036 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/create-user-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/create-user/create-user-modal.element.ts @@ -4,7 +4,7 @@ import { customElement, query, state } from 'lit/decorators.js'; import { UUIInputPasswordElement } from '@umbraco-ui/uui'; import { UmbInputPickerUserGroupElement } from '../../../../shared/components/input-user-group/input-user-group.element'; import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../repository/user.store'; -import { UmbModalLayoutElement } from '@umbraco-cms/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/modal'; import type { UserDetails } from '@umbraco-cms/models'; import { UmbNotificationDefaultData, @@ -14,7 +14,7 @@ import { export type UsersViewType = 'list' | 'grid'; @customElement('umb-create-user-modal') -export class UmbCreateUserModalElement extends UmbModalLayoutElement { +export class UmbCreateUserModalElement extends UmbModalBaseElement { static styles = [ UUITextStyles, css` diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/invite-user-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/invite-user-modal.element.ts index 8858df7b36..a01e344bde 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/invite-user-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/modals/invite-user/invite-user-modal.element.ts @@ -3,12 +3,12 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, query, state } from 'lit/decorators.js'; import { UmbInputPickerUserGroupElement } from '../../../../shared/components/input-user-group/input-user-group.element'; import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../repository/user.store'; -import { UmbModalLayoutElement } from '@umbraco-cms/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/modal'; import type { UserDetails } from '@umbraco-cms/models'; export type UsersViewType = 'list' | 'grid'; @customElement('umb-invite-user-modal') -export class UmbInviteUserModalElement extends UmbModalLayoutElement { +export class UmbInviteUserModalElement extends UmbModalBaseElement { static styles = [ UUITextStyles, css` From 9bb480d6205ba9f92307cc3ef5e0467a88a6eb7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 10 Mar 2023 23:27:15 +0100 Subject: [PATCH 115/134] updated docs --- .../libs/modal/stories/modal.mdx | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.mdx b/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.mdx index 69baf76f73..9cb19bc473 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.mdx +++ b/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.mdx @@ -100,7 +100,11 @@ interface MyModalData = { content: string; } -const MY_MODAL_TOKEN = new ModalToken('My.Modal', { +interface MyModalResult = { + myReturnData: string; +} + +const MY_MODAL_TOKEN = new ModalToken('My.Modal', { type: 'sidebar', size: 'small' }); @@ -116,19 +120,24 @@ import type { UmbModalHandler } from '@umbraco-cms/modal'; class MyDialog extends UmbElementMixin(LitElement) { // the modal handler will be injected into the element when the modal is opened. @property({ attribute: false }) - modalHandler?: UmbModalHandler; + modalHandler?: UmbModalHandler; - private _handleClose() { - /* Optional data of any type can be applied to the close method to pass it - to the modal parent through the onClose promise. */ - this._modalHandler?.close('optional data'); + private _handleCancel() { + this._modalHandler?.close(); + } + + private _handleSubmit() { + /* Optional data of any type can be applied to the submit method to pass it + to the modal parent through the onSubmit promise. */ + this._modalHandler?.submit({ myReturnData: 'hello world' }); } render() { return html`

My Modal

- + +
`; } From 4daf40abaeda739b6e47482a065c7cb850b61d1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 10 Mar 2023 23:32:21 +0100 Subject: [PATCH 116/134] default exports for modal elements --- .../entity-actions/create/create-document-modal.element.ts | 2 ++ .../create/create-dictionary-modal-layout.element.ts | 2 ++ .../export/export-dictionary-modal-layout.element.ts | 2 ++ .../import/import-dictionary-modal-layout.element.ts | 2 ++ 4 files changed, 8 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/create/create-document-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/create/create-document-modal.element.ts index 5c5d57c687..e438a3e3e4 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/create/create-document-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/create/create-document-modal.element.ts @@ -39,6 +39,8 @@ export class UmbCreateDocumentModalElement extends UmbModalBaseElement< } } +export default UmbCreateDocumentModalElement; + declare global { interface HTMLElementTagNameMap { 'umb-create-document-modal': UmbCreateDocumentModalElement; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create-dictionary-modal-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create-dictionary-modal-layout.element.ts index 7d2c0535d0..4b462e515f 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create-dictionary-modal-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/create/create-dictionary-modal-layout.element.ts @@ -71,6 +71,8 @@ export class UmbCreateDictionaryModalLayoutElement extends UmbModalBaseElement< } } +export default UmbCreateDictionaryModalLayoutElement; + declare global { interface HTMLElementTagNameMap { 'umb-create-dictionary-modal': UmbCreateDictionaryModalLayoutElement; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export-dictionary-modal-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export-dictionary-modal-layout.element.ts index fa0473a81b..bce5dc282a 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export-dictionary-modal-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/export/export-dictionary-modal-layout.element.ts @@ -49,6 +49,8 @@ export class UmbExportDictionaryModalLayoutElement extends UmbModalBaseElement< } } +export default UmbExportDictionaryModalLayoutElement; + declare global { interface HTMLElementTagNameMap { 'umb-export-dictionary-modal-layout': UmbExportDictionaryModalLayoutElement; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import-dictionary-modal-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import-dictionary-modal-layout.element.ts index 84b1ff95d4..b178a42ac3 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import-dictionary-modal-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/import/import-dictionary-modal-layout.element.ts @@ -156,6 +156,8 @@ export class UmbImportDictionaryModalLayoutElement extends UmbModalBaseElement< } } +export default UmbImportDictionaryModalLayoutElement; + declare global { interface HTMLElementTagNameMap { 'umb-import-dictionary-modal-layout': UmbImportDictionaryModalLayoutElement; From bcebf93f0235f0d3f8a0392839f4fd4e83c9eb0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 10 Mar 2023 23:34:06 +0100 Subject: [PATCH 117/134] fix alias --- .../translation/dictionary/entity-actions/manifests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/manifests.ts index 994a4a74fa..7e75f56e94 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/entity-actions/manifests.ts @@ -93,7 +93,7 @@ const entityActions: Array = [ const modals: Array = [ { type: 'modal', - alias: 'Umb.Modal.ExamineFieldsSettings', + alias: 'Umb.Modal.CreateDictionary', name: 'Create Dictionary Modal', loader: () => import('./create/create-dictionary-modal-layout.element'), }, From a540e05f8d3242855a263071046d5772a56f0740 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 13 Mar 2023 09:54:22 +0100 Subject: [PATCH 118/134] fix import paths --- .../backoffice/shared/components/section/section.element.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section.element.ts index 46f147c541..68236f6226 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section.element.ts @@ -9,9 +9,9 @@ import type { ManifestSectionView, ManifestWorkspace, ManifestMenuSectionSidebar import { umbExtensionsRegistry, createExtensionElement } from '@umbraco-cms/extensions-api'; import { UmbLitElement } from '@umbraco-cms/element'; -import './section-sidebar-menu/section-sidebar-menu.element.ts'; -import './section-views/section-views.element.ts'; -import '../../../settings/languages/app-language-select/app-language-select.element.ts'; +import './section-sidebar-menu/section-sidebar-menu.element'; +import './section-views/section-views.element'; +import '../../../settings/languages/app-language-select/app-language-select.element'; @customElement('umb-section') export class UmbSectionElement extends UmbLitElement { From c2c237fe8c5326438aec5fb4e9c3941d7fb0c844 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 13 Mar 2023 09:54:37 +0100 Subject: [PATCH 119/134] fix import paths --- .../shared/components/entity-action/entity-action.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/entity-action/entity-action.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/entity-action/entity-action.element.ts index 1c2fe73009..fb8da88a95 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/entity-action/entity-action.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/entity-action/entity-action.element.ts @@ -4,7 +4,7 @@ import { ifDefined } from 'lit/directives/if-defined.js'; import { UUIMenuItemEvent } from '@umbraco-ui/uui'; import { UmbExecutedEvent } from '@umbraco-cms/events'; import { UmbLitElement } from '@umbraco-cms/element'; -import { ManifestEntityAction } from 'libs/extensions-registry/entity-action.models'; +import { ManifestEntityAction } from '@umbraco-cms/extensions-registry'; @customElement('umb-entity-action') class UmbEntityActionElement extends UmbLitElement { From 00adb3bd9cdef77f1bb6c1c6e1b7d6c6d9a92a8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 13 Mar 2023 10:36:28 +0100 Subject: [PATCH 120/134] remove import --- src/Umbraco.Web.UI.Client/libs/router/router-slot.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/libs/router/router-slot.element.ts b/src/Umbraco.Web.UI.Client/libs/router/router-slot.element.ts index b60172dcee..b401ecf27a 100644 --- a/src/Umbraco.Web.UI.Client/libs/router/router-slot.element.ts +++ b/src/Umbraco.Web.UI.Client/libs/router/router-slot.element.ts @@ -1,4 +1,4 @@ -import { IRoute, RouterSlot, ensureSlash } from 'router-slot'; +import { IRoute, RouterSlot } from 'router-slot'; import { LitElement, PropertyValueMap } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/router'; From 1a3f678348afe312dd5a641c50685adc49064997 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 13 Mar 2023 10:41:00 +0100 Subject: [PATCH 121/134] import order --- .../workspace/views/document-workspace-view-edit.element.ts | 2 +- .../examine-management/dashboard-examine-management.element.ts | 2 +- .../dashboards/health-check/dashboard-health-check.element.ts | 2 +- .../views/health-check-group-box-overview.element.ts | 2 +- .../components/backoffice-frame/backoffice-main.element.ts | 2 +- .../section/section-dashboards/section-dashboards.element.ts | 2 +- .../src/backoffice/shared/components/section/section.element.ts | 2 +- .../views/users/workspace-view-users-overview.element.ts | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/workspace/views/document-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/workspace/views/document-workspace-view-edit.element.ts index 26b33df552..6dfc9ca79b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/workspace/views/document-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/workspace/views/document-workspace-view-edit.element.ts @@ -2,8 +2,8 @@ import { css, html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, state } from 'lit/decorators.js'; import { repeat } from 'lit/directives/repeat.js'; -import type { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent, IRoute } from '@umbraco-cms/router'; import { UmbDocumentWorkspaceContext } from '../document-workspace.context'; +import type { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent, IRoute } from '@umbraco-cms/router'; import { UmbLitElement } from '@umbraco-cms/element'; import { PropertyTypeContainerViewModelBaseModel } from '@umbraco-cms/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/dashboard-examine-management.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/dashboard-examine-management.element.ts index b587d0526c..a82f3676bc 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/dashboard-examine-management.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/dashboard-examine-management.element.ts @@ -1,9 +1,9 @@ import { html, css, nothing } from 'lit'; import { customElement, state } from 'lit/decorators.js'; -import type { IRoute, IRoutingInfo, UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/router'; import { UmbDashboardExamineIndexElement } from './views/section-view-examine-indexers'; import { UmbDashboardExamineSearcherElement } from './views/section-view-examine-searchers'; +import type { IRoute, IRoutingInfo, UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/router'; import { UmbLitElement } from '@umbraco-cms/element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/health-check/dashboard-health-check.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/health-check/dashboard-health-check.element.ts index 449131b532..ce95990d04 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/health-check/dashboard-health-check.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/health-check/dashboard-health-check.element.ts @@ -1,12 +1,12 @@ import { html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; -import type { IRoute, IRoutingInfo } from '@umbraco-cms/router'; import { UmbDashboardHealthCheckGroupElement } from './views/health-check-group.element'; import { UmbHealthCheckDashboardContext, UMB_HEALTHCHECK_DASHBOARD_CONTEXT_TOKEN, } from './health-check-dashboard.context'; import { UmbHealthCheckContext } from './health-check.context'; +import type { IRoute, IRoutingInfo } from '@umbraco-cms/router'; import { UmbLitElement } from '@umbraco-cms/element'; import { ManifestHealthCheck } from '@umbraco-cms/extensions-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/health-check/views/health-check-group-box-overview.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/health-check/views/health-check-group-box-overview.element.ts index 63ef1f378d..31fa419b08 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/health-check/views/health-check-group-box-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/health-check/views/health-check-group-box-overview.element.ts @@ -1,12 +1,12 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html, nothing } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; -import { ensureSlash, path } from '@umbraco-cms/router'; import { UmbHealthCheckContext } from '../health-check.context'; import { UMB_HEALTHCHECK_DASHBOARD_CONTEXT_TOKEN, UmbHealthCheckDashboardContext, } from '../health-check-dashboard.context'; +import { ensureSlash, path } from '@umbraco-cms/router'; import type { ManifestHealthCheck } from '@umbraco-cms/models'; import { HealthCheckGroupWithResultModel, StatusResultTypeModel } from '@umbraco-cms/backend-api'; import { UmbLitElement } from '@umbraco-cms/element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice-main.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice-main.element.ts index b2bc5638a9..2ef3862bf0 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice-main.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice-main.element.ts @@ -2,9 +2,9 @@ import { defineElement } from '@umbraco-ui/uui-base/lib/registration'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html } from 'lit'; import { state } from 'lit/decorators.js'; -import type { UmbRouterSlotChangeEvent } from '@umbraco-cms/router'; import { UmbSectionContext, UMB_SECTION_CONTEXT_TOKEN } from '../section/section.context'; import { UmbBackofficeContext, UMB_BACKOFFICE_CONTEXT_TOKEN } from './backoffice.context'; +import type { UmbRouterSlotChangeEvent } from '@umbraco-cms/router'; import type { ManifestSection } from '@umbraco-cms/models'; import { UmbLitElement } from '@umbraco-cms/element'; import { createExtensionElementOrFallback } from '@umbraco-cms/extensions-api'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section-dashboards/section-dashboards.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section-dashboards/section-dashboards.element.ts index 509d153c39..fdd455c893 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section-dashboards/section-dashboards.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section-dashboards/section-dashboards.element.ts @@ -2,8 +2,8 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html, nothing } from 'lit'; import { customElement, state } from 'lit/decorators.js'; import { first, map } from 'rxjs'; -import type { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent, IRoutingInfo } from '@umbraco-cms/router'; import { UmbSectionContext, UMB_SECTION_CONTEXT_TOKEN } from '../section.context'; +import type { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent, IRoutingInfo } from '@umbraco-cms/router'; import { createExtensionElement, umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; import type { ManifestDashboard, ManifestDashboardCollection } from '@umbraco-cms/models'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section.element.ts index 4d678f7f8c..1b211a40b9 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section.element.ts @@ -2,9 +2,9 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html, nothing } from 'lit'; import { customElement, state } from 'lit/decorators.js'; import { map } from 'rxjs'; -import type { UmbRouterSlotChangeEvent, IRoutingInfo } from '@umbraco-cms/router'; import type { UmbWorkspaceEntityElement } from '../workspace/workspace-entity-element.interface'; import { UmbSectionContext, UMB_SECTION_CONTEXT_TOKEN } from './section.context'; +import type { UmbRouterSlotChangeEvent, IRoutingInfo } from '@umbraco-cms/router'; import type { ManifestSectionView, ManifestWorkspace, ManifestMenuSectionSidebarApp } from '@umbraco-cms/models'; import { umbExtensionsRegistry, createExtensionElement } from '@umbraco-cms/extensions-api'; import { UmbLitElement } from '@umbraco-cms/element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-overview.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-overview.element.ts index ce73c18cc5..c64248a145 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-overview.element.ts @@ -2,10 +2,10 @@ import { css, html, nothing } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, state } from 'lit/decorators.js'; import { UUIPopoverElement } from '@umbraco-ui/uui'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UMB_INVITE_USER_MODAL_TOKEN } from '../../../../users/users/modals/invite-user'; import { UMB_CREATE_USER_MODAL_TOKEN } from '../../../../users/users/modals/create-user'; import type { UmbSectionViewUsersElement } from './section-view-users.element'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import type { IRoute } from '@umbraco-cms/router'; import { UmbLitElement } from '@umbraco-cms/element'; 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 122/134] 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', }, }, }, From 5f5edf014af59a7fc26b5525218a5ce1f21d7d79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 13 Mar 2023 13:02:00 +0100 Subject: [PATCH 123/134] make interface extend HTMLElement --- src/Umbraco.Web.UI.Client/libs/property-editor/index.ts | 7 ++++++- .../libs/property-editor/property-editor-element.ts | 6 ------ 2 files changed, 6 insertions(+), 7 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/libs/property-editor/property-editor-element.ts diff --git a/src/Umbraco.Web.UI.Client/libs/property-editor/index.ts b/src/Umbraco.Web.UI.Client/libs/property-editor/index.ts index 8637ac2e6d..e2a222e019 100644 --- a/src/Umbraco.Web.UI.Client/libs/property-editor/index.ts +++ b/src/Umbraco.Web.UI.Client/libs/property-editor/index.ts @@ -1 +1,6 @@ -export * from './property-editor-element'; +import { DataTypePropertyModel } from '@umbraco-cms/backend-api'; + +export interface UmbPropertyEditorElement extends HTMLElement { + value: unknown; + config: DataTypePropertyModel[]; +} 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 deleted file mode 100644 index 8b081cbdec..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/property-editor/property-editor-element.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { DataTypePropertyModel } from '@umbraco-cms/backend-api'; - -export interface UmbPropertyEditorElement { - value: unknown; - config: DataTypePropertyModel[]; -} From 3354ad0777640dd30d26b5778c1996a006cac074 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 13 Mar 2023 13:03:35 +0100 Subject: [PATCH 124/134] ensure config is available and cast type --- .../workspace-property/workspace-property.element.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 59a9fc51f1..634b4a8d7c 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 @@ -203,7 +203,7 @@ export class UmbWorkspacePropertyElement extends UmbLitElement { oldValue?.removeEventListener('change', this._onPropertyEditorChange as any as EventListener); - this._element = el; + this._element = el as UmbPropertyEditorElement; this._valueObserver?.destroy(); this._configObserver?.destroy(); @@ -218,7 +218,7 @@ export class UmbWorkspacePropertyElement extends UmbLitElement { } }); this._configObserver = this.observe(this._propertyContext.config, (config) => { - if (this._element) { + if (this._element && config) { this._element.config = config; } }); From 80e5687fee6da29b068fff6e2979f5623d51b634 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 13 Mar 2023 13:13:15 +0100 Subject: [PATCH 125/134] implement property editor interface --- .../block-grid/property-editor-ui-block-grid.element.ts | 5 +++-- .../block-list/property-editor-ui-block-list.element.ts | 3 ++- .../property-editor-ui-checkbox-list.element.ts | 3 ++- .../property-editor-ui-color-picker.element.ts | 3 ++- .../date-picker/property-editor-ui-date-picker.element.ts | 3 ++- .../property-editor-ui-document-picker.element.ts | 3 ++- .../uis/dropdown/property-editor-ui-dropdown.element.ts | 3 ++- .../eye-dropper/property-editor-ui-eye-dropper.element.ts | 3 ++- .../icon-picker/property-editor-ui-icon-picker.element.ts | 3 ++- .../property-editor-ui-image-cropper.element.ts | 3 ++- ...roperty-editor-ui-image-crops-configuration.element.ts | 6 +++++- .../uis/label/property-editor-ui-label.element.ts | 3 ++- .../property-editor-ui-markdown-editor.element.ts | 3 ++- .../property-editor-ui-media-picker.element.ts | 3 ++- .../property-editor-ui-member-group-picker.element.ts | 3 ++- .../property-editor-ui-member-picker.element.ts | 3 ++- .../property-editor-ui-multi-url-picker.element.ts | 3 ++- .../property-editor-ui-multiple-text-string.element.ts | 3 ++- .../property-editor-ui-number-range.element.ts | 3 ++- .../uis/number/property-editor-ui-number.element.ts | 3 ++- .../property-editor-ui-order-direction.element.ts | 3 ++- .../property-editor-ui-overlay-size.element.ts | 3 ++- .../property-editor-ui-radio-button-list.element.ts | 3 ++- .../uis/slider/property-editor-ui-slider.element.ts | 5 +++-- .../uis/tags/property-editor-ui-tags.element.ts | 3 ++- .../uis/text-box/property-editor-ui-text-box.element.ts | 3 ++- .../uis/textarea/property-editor-ui-textarea.element.ts | 8 ++++---- .../uis/tiny-mce/property-editor-ui-tiny-mce.element.ts | 3 ++- .../uis/toggle/property-editor-ui-toggle.element.ts | 3 ++- .../tree-picker/property-editor-ui-tree-picker.element.ts | 3 ++- .../property-editor-ui-upload-field.element.ts | 3 ++- .../user-picker/property-editor-ui-user-picker.element.ts | 3 ++- .../value-type/property-editor-ui-value-type.element.ts | 3 ++- 33 files changed, 73 insertions(+), 38 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/block-grid/property-editor-ui-block-grid.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/block-grid/property-editor-ui-block-grid.element.ts index a7821c5f42..7cc7d10385 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/block-grid/property-editor-ui-block-grid.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/block-grid/property-editor-ui-block-grid.element.ts @@ -2,16 +2,17 @@ import { html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { IRoute, IRoutingInfo } from 'router-slot'; +import { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/router'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UMB_WORKSPACE_VARIANT_CONTEXT_TOKEN } from '../../../../shared/components/workspace/workspace-variant/workspace-variant.context'; import { UmbVariantId } from '../../../../shared/variants/variant-id.class'; import { UmbLitElement } from '@umbraco-cms/element'; -import { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/router'; /** * @element umb-property-editor-ui-block-grid */ @customElement('umb-property-editor-ui-block-grid') -export class UmbPropertyEditorUIBlockGridElement extends UmbLitElement { +export class UmbPropertyEditorUIBlockGridElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; private _variantContext?: typeof UMB_WORKSPACE_VARIANT_CONTEXT_TOKEN.TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/block-list/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/block-list/property-editor-ui-block-list.element.ts index 8af4f0bd49..50d78729d4 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/block-list/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/block-list/property-editor-ui-block-list.element.ts @@ -1,13 +1,14 @@ import { html } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; /** * @element umb-property-editor-ui-block-list */ @customElement('umb-property-editor-ui-block-list') -export class UmbPropertyEditorUIBlockListElement extends UmbLitElement { +export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property() diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts index 0dda2b82d8..f4cd0f3718 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts @@ -1,6 +1,7 @@ import { html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbInputCheckboxListElement } from '../../../components/input-checkbox-list/input-checkbox-list.element'; import { UmbLitElement } from '@umbraco-cms/element'; import type { DataTypePropertyModel } from '@umbraco-cms/backend-api'; @@ -9,7 +10,7 @@ import type { DataTypePropertyModel } from '@umbraco-cms/backend-api'; * @element umb-property-editor-ui-checkbox-list */ @customElement('umb-property-editor-ui-checkbox-list') -export class UmbPropertyEditorUICheckboxListElement extends UmbLitElement { +export class UmbPropertyEditorUICheckboxListElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; #value: Array = []; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/color-picker/property-editor-ui-color-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/color-picker/property-editor-ui-color-picker.element.ts index a6fbfe8c1d..eb68421589 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/color-picker/property-editor-ui-color-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/color-picker/property-editor-ui-color-picker.element.ts @@ -2,6 +2,7 @@ import { html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { UUIColorSwatchesEvent } from '@umbraco-ui/uui'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; import type { DataTypePropertyModel } from '@umbraco-cms/backend-api'; import type { SwatchDetails } from '@umbraco-cms/models'; @@ -10,7 +11,7 @@ import type { SwatchDetails } from '@umbraco-cms/models'; * @element umb-property-editor-ui-color-picker */ @customElement('umb-property-editor-ui-color-picker') -export class UmbPropertyEditorUIColorPickerElement extends UmbLitElement { +export class UmbPropertyEditorUIColorPickerElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property() diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/date-picker/property-editor-ui-date-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/date-picker/property-editor-ui-date-picker.element.ts index db7efd7f55..cbaac743c1 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/date-picker/property-editor-ui-date-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/date-picker/property-editor-ui-date-picker.element.ts @@ -2,6 +2,7 @@ import { html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { InputType } from '@umbraco-ui/uui'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbPropertyValueChangeEvent } from '../..'; import { UmbLitElement } from '@umbraco-cms/element'; import { PropertyEditorConfigDefaultData } from '@umbraco-cms/extensions-registry'; @@ -10,7 +11,7 @@ import { PropertyEditorConfigDefaultData } from '@umbraco-cms/extensions-registr * @element umb-property-editor-ui-date-picker */ @customElement('umb-property-editor-ui-date-picker') -export class UmbPropertyEditorUIDatePickerElement extends UmbLitElement { +export class UmbPropertyEditorUIDatePickerElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; private _value?: Date; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/document-picker/property-editor-ui-document-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/document-picker/property-editor-ui-document-picker.element.ts index f6edebbb17..b943d557ef 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/document-picker/property-editor-ui-document-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/document-picker/property-editor-ui-document-picker.element.ts @@ -1,12 +1,13 @@ import { html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import type { UmbInputDocumentPickerElement } from '../../../components/input-document-picker/input-document-picker.element'; import { UmbLitElement } from '@umbraco-cms/element'; import '../../../components/input-document-picker/input-document-picker.element'; import type { DataTypePropertyModel } from '@umbraco-cms/backend-api'; @customElement('umb-property-editor-ui-document-picker') -export class UmbPropertyEditorUIContentPickerElement extends UmbLitElement { +export class UmbPropertyEditorUIContentPickerElement extends UmbLitElement implements UmbPropertyEditorElement { private _value: Array = []; @property({ type: Array }) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/dropdown/property-editor-ui-dropdown.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/dropdown/property-editor-ui-dropdown.element.ts index 7020970027..2c25c467f6 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/dropdown/property-editor-ui-dropdown.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/dropdown/property-editor-ui-dropdown.element.ts @@ -1,13 +1,14 @@ import { html } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; /** * @element umb-property-editor-ui-dropdown */ @customElement('umb-property-editor-ui-dropdown') -export class UmbPropertyEditorUIDropdownElement extends UmbLitElement { +export class UmbPropertyEditorUIDropdownElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property() diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/eye-dropper/property-editor-ui-eye-dropper.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/eye-dropper/property-editor-ui-eye-dropper.element.ts index fae1c624d7..96bb3ccbd2 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/eye-dropper/property-editor-ui-eye-dropper.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/eye-dropper/property-editor-ui-eye-dropper.element.ts @@ -2,6 +2,7 @@ import { html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { UUIColorPickerChangeEvent } from '@umbraco-ui/uui'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; import type { DataTypePropertyModel } from '@umbraco-cms/backend-api'; @@ -9,7 +10,7 @@ import type { DataTypePropertyModel } from '@umbraco-cms/backend-api'; * @element umb-property-editor-ui-eye-dropper */ @customElement('umb-property-editor-ui-eye-dropper') -export class UmbPropertyEditorUIEyeDropperElement extends UmbLitElement { +export class UmbPropertyEditorUIEyeDropperElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property() diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts index 6d996a29ef..57306c9c96 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts @@ -1,6 +1,7 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property } from 'lit/decorators.js'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UMB_ICON_PICKER_MODAL_TOKEN } from '../../../modals/icon-picker'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UmbLitElement } from '@umbraco-cms/element'; @@ -9,7 +10,7 @@ import { UmbLitElement } from '@umbraco-cms/element'; * @element umb-property-editor-ui-icon-picker */ @customElement('umb-property-editor-ui-icon-picker') -export class UmbPropertyEditorUIIconPickerElement extends UmbLitElement { +export class UmbPropertyEditorUIIconPickerElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property() diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/image-cropper/property-editor-ui-image-cropper.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/image-cropper/property-editor-ui-image-cropper.element.ts index 88b08bbf7e..99fd3118d1 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/image-cropper/property-editor-ui-image-cropper.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/image-cropper/property-editor-ui-image-cropper.element.ts @@ -1,13 +1,14 @@ import { html } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; /** * @element umb-property-editor-ui-image-cropper */ @customElement('umb-property-editor-ui-image-cropper') -export class UmbPropertyEditorUIImageCropperElement extends UmbLitElement { +export class UmbPropertyEditorUIImageCropperElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property() diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.element.ts index f9ef77f241..c8c84bb914 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.element.ts @@ -1,13 +1,17 @@ import { html } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; /** * @element umb-property-editor-ui-image-crops-configuration */ @customElement('umb-property-editor-ui-image-crops-configuration') -export class UmbPropertyEditorUIImageCropsConfigurationElement extends UmbLitElement { +export class UmbPropertyEditorUIImageCropsConfigurationElement + extends UmbLitElement + implements UmbPropertyEditorElement +{ static styles = [UUITextStyles]; @property() diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/label/property-editor-ui-label.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/label/property-editor-ui-label.element.ts index 59e2a6f66e..e06e10061f 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/label/property-editor-ui-label.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/label/property-editor-ui-label.element.ts @@ -1,13 +1,14 @@ import { html } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; /** * @element umb-property-editor-ui-label */ @customElement('umb-property-editor-ui-label') -export class UmbPropertyEditorUILabelElement extends UmbLitElement { +export class UmbPropertyEditorUILabelElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property() diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/markdown-editor/property-editor-ui-markdown-editor.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/markdown-editor/property-editor-ui-markdown-editor.element.ts index d20b64e31c..24c6a83027 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/markdown-editor/property-editor-ui-markdown-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/markdown-editor/property-editor-ui-markdown-editor.element.ts @@ -1,13 +1,14 @@ import { html } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; /** * @element umb-property-editor-ui-markdown-editor */ @customElement('umb-property-editor-ui-markdown-editor') -export class UmbPropertyEditorUIMarkdownEditorElement extends UmbLitElement { +export class UmbPropertyEditorUIMarkdownEditorElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property() diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/media-picker/property-editor-ui-media-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/media-picker/property-editor-ui-media-picker.element.ts index ee2fcef3ba..1f1dac3fcf 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/media-picker/property-editor-ui-media-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/media-picker/property-editor-ui-media-picker.element.ts @@ -1,5 +1,6 @@ import { html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbInputMediaPickerElement } from '../../../../../backoffice/shared/components/input-media-picker/input-media-picker.element'; import { UmbLitElement } from '@umbraco-cms/element'; import type { DataTypePropertyModel } from '@umbraco-cms/backend-api'; @@ -8,7 +9,7 @@ import type { DataTypePropertyModel } from '@umbraco-cms/backend-api'; * @element umb-property-editor-ui-media-picker */ @customElement('umb-property-editor-ui-media-picker') -export class UmbPropertyEditorUIMediaPickerElement extends UmbLitElement { +export class UmbPropertyEditorUIMediaPickerElement extends UmbLitElement implements UmbPropertyEditorElement { private _value: Array = []; @property({ type: Array }) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/member-group-picker/property-editor-ui-member-group-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/member-group-picker/property-editor-ui-member-group-picker.element.ts index 6a851c6516..b26690d1ad 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/member-group-picker/property-editor-ui-member-group-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/member-group-picker/property-editor-ui-member-group-picker.element.ts @@ -1,13 +1,14 @@ import { html } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; /** * @element umb-property-editor-ui-member-group-picker */ @customElement('umb-property-editor-ui-member-group-picker') -export class UmbPropertyEditorUIMemberGroupPickerElement extends UmbLitElement { +export class UmbPropertyEditorUIMemberGroupPickerElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property() diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/member-picker/property-editor-ui-member-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/member-picker/property-editor-ui-member-picker.element.ts index 88d9b40f47..d1cc234e13 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/member-picker/property-editor-ui-member-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/member-picker/property-editor-ui-member-picker.element.ts @@ -1,13 +1,14 @@ import { html } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; /** * @element umb-property-editor-ui-member-picker */ @customElement('umb-property-editor-ui-member-picker') -export class UmbPropertyEditorUIMemberPickerElement extends UmbLitElement { +export class UmbPropertyEditorUIMemberPickerElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property() diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts index 5b79e28ab6..0541dd9f46 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts @@ -2,6 +2,7 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property, state } from 'lit/decorators.js'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbInputMultiUrlPickerElement } from '../../../../shared/components/input-multi-url-picker/input-multi-url-picker.element'; import { UmbLinkPickerLink } from '../../../../shared/modals/link-picker'; import { UmbLitElement } from '@umbraco-cms/element'; @@ -12,7 +13,7 @@ import { DataTypePropertyModel } from '@umbraco-cms/backend-api'; */ @customElement('umb-property-editor-ui-multi-url-picker') -export class UmbPropertyEditorUIMultiUrlPickerElement extends UmbLitElement { +export class UmbPropertyEditorUIMultiUrlPickerElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property({ type: Array }) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/property-editor-ui-multiple-text-string.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/property-editor-ui-multiple-text-string.element.ts index 8b57f43a6e..cbfac131df 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/property-editor-ui-multiple-text-string.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/property-editor-ui-multiple-text-string.element.ts @@ -1,6 +1,7 @@ import { html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { ifDefined } from 'lit-html/directives/if-defined.js'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbPropertyValueChangeEvent } from '../..'; import UmbInputMultipleTextStringElement, { MultipleTextStringValue, @@ -17,7 +18,7 @@ export type MultipleTextStringConfigData = Array<{ * @element umb-property-editor-ui-multiple-text-string */ @customElement('umb-property-editor-ui-multiple-text-string') -export class UmbPropertyEditorUIMultipleTextStringElement extends UmbLitElement { +export class UmbPropertyEditorUIMultipleTextStringElement extends UmbLitElement implements UmbPropertyEditorElement { @property({ type: Array }) public value: MultipleTextStringValue = []; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/number-range/property-editor-ui-number-range.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/number-range/property-editor-ui-number-range.element.ts index 4b998c64e4..377191db13 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/number-range/property-editor-ui-number-range.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/number-range/property-editor-ui-number-range.element.ts @@ -1,6 +1,7 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property, state } from 'lit/decorators.js'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import type { UmbInputNumberRangeElement } from '../../../../shared/components/input-number-range/input-number-range.element'; import { UmbLitElement } from '@umbraco-cms/element'; import '../../../../shared/components/input-number-range/input-number-range.element'; @@ -14,7 +15,7 @@ type ValueType = { * @element umb-property-editor-ui-number-range */ @customElement('umb-property-editor-ui-number-range') -export class UmbPropertyEditorUINumberRangeElement extends UmbLitElement { +export class UmbPropertyEditorUINumberRangeElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property({ type: Object }) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/number/property-editor-ui-number.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/number/property-editor-ui-number.element.ts index 84663ac489..f1bab95b1b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/number/property-editor-ui-number.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/number/property-editor-ui-number.element.ts @@ -1,10 +1,11 @@ import { css, html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property } from 'lit/decorators.js'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; @customElement('umb-property-editor-ui-number') -export class UmbPropertyEditorUINumberElement extends UmbLitElement { +export class UmbPropertyEditorUINumberElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [ UUITextStyles, css` diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/order-direction/property-editor-ui-order-direction.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/order-direction/property-editor-ui-order-direction.element.ts index 6f99e11e43..90ac01ce2e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/order-direction/property-editor-ui-order-direction.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/order-direction/property-editor-ui-order-direction.element.ts @@ -1,13 +1,14 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property } from 'lit/decorators.js'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; /** * @element umb-property-editor-ui-order-direction */ @customElement('umb-property-editor-ui-order-direction') -export class UmbPropertyEditorUIOrderDirectionElement extends UmbLitElement { +export class UmbPropertyEditorUIOrderDirectionElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property() diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/overlay-size/property-editor-ui-overlay-size.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/overlay-size/property-editor-ui-overlay-size.element.ts index 68b6369670..b660d0424c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/overlay-size/property-editor-ui-overlay-size.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/overlay-size/property-editor-ui-overlay-size.element.ts @@ -1,13 +1,14 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property } from 'lit/decorators.js'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; /** * @element umb-property-editor-ui-overlay-size */ @customElement('umb-property-editor-ui-overlay-size') -export class UmbPropertyEditorUIOverlaySizeElement extends UmbLitElement { +export class UmbPropertyEditorUIOverlaySizeElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property() diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts index 1730df37a9..394c30f4fe 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts @@ -2,6 +2,7 @@ import { html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import '../../../components/input-radio-button-list/input-radio-button-list.element'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import type { UmbInputRadioButtonListElement } from '../../../components/input-radio-button-list/input-radio-button-list.element'; import { UmbLitElement } from '@umbraco-cms/element'; import type { DataTypePropertyModel } from '@umbraco-cms/backend-api'; @@ -10,7 +11,7 @@ import type { DataTypePropertyModel } from '@umbraco-cms/backend-api'; * @element umb-property-editor-ui-radio-button-list */ @customElement('umb-property-editor-ui-radio-button-list') -export class UmbPropertyEditorUIRadioButtonListElement extends UmbLitElement { +export class UmbPropertyEditorUIRadioButtonListElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; #value = ''; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/slider/property-editor-ui-slider.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/slider/property-editor-ui-slider.element.ts index 42a7ddb9d9..d95c14f2fb 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/slider/property-editor-ui-slider.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/slider/property-editor-ui-slider.element.ts @@ -1,15 +1,16 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property, state } from 'lit/decorators.js'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; +import UmbInputSliderElement from '../../../../shared/components/input-slider/input-slider.element'; import { UmbLitElement } from '@umbraco-cms/element'; import { DataTypePropertyModel } from '@umbraco-cms/backend-api'; -import UmbInputSliderElement from 'src/backoffice/shared/components/input-slider/input-slider.element'; /** * @element umb-property-editor-ui-slider */ @customElement('umb-property-editor-ui-slider') -export class UmbPropertyEditorUISliderElement extends UmbLitElement { +export class UmbPropertyEditorUISliderElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property() diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tags/property-editor-ui-tags.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tags/property-editor-ui-tags.element.ts index a7d922140f..61aaf420ba 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tags/property-editor-ui-tags.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tags/property-editor-ui-tags.element.ts @@ -1,13 +1,14 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property } from 'lit/decorators.js'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; /** * @element umb-property-editor-ui-tags */ @customElement('umb-property-editor-ui-tags') -export class UmbPropertyEditorUITagsElement extends UmbLitElement { +export class UmbPropertyEditorUITagsElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property() diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/text-box/property-editor-ui-text-box.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/text-box/property-editor-ui-text-box.element.ts index 6ae4ce2284..4ed5e651b0 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/text-box/property-editor-ui-text-box.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/text-box/property-editor-ui-text-box.element.ts @@ -1,10 +1,11 @@ import { css, html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property } from 'lit/decorators.js'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; @customElement('umb-property-editor-ui-text-box') -export class UmbPropertyEditorUITextBoxElement extends UmbLitElement { +export class UmbPropertyEditorUITextBoxElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [ UUITextStyles, css` diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/textarea/property-editor-ui-textarea.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/textarea/property-editor-ui-textarea.element.ts index ba7c1245cf..cf943c33e3 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/textarea/property-editor-ui-textarea.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/textarea/property-editor-ui-textarea.element.ts @@ -2,11 +2,12 @@ import { css, html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property } from 'lit/decorators.js'; import { UUITextareaElement } from '@umbraco-ui/uui'; -import type { UmbWorkspacePropertyContext } from 'src/backoffice/shared/components/workspace-property/workspace-property.context'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; +import type { UmbWorkspacePropertyContext } from '../../../../shared/components/workspace-property/workspace-property.context'; import { UmbLitElement } from '@umbraco-cms/element'; @customElement('umb-property-editor-ui-textarea') -export class UmbPropertyEditorUITextareaElement extends UmbLitElement { +export class UmbPropertyEditorUITextareaElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [ UUITextStyles, css` @@ -38,8 +39,7 @@ export class UmbPropertyEditorUITextareaElement extends UmbLitElement { } render() { - return html` - `; + return html` `; } } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/property-editor-ui-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/property-editor-ui-tiny-mce.element.ts index 627563c013..dc3e18e17f 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/property-editor-ui-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/property-editor-ui-tiny-mce.element.ts @@ -1,13 +1,14 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property } from 'lit/decorators.js'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; /** * @element umb-property-editor-ui-tiny-mce */ @customElement('umb-property-editor-ui-tiny-mce') -export class UmbPropertyEditorUITinyMceElement extends UmbLitElement { +export class UmbPropertyEditorUITinyMceElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property() diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/toggle/property-editor-ui-toggle.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/toggle/property-editor-ui-toggle.element.ts index 1e411f549a..78c31f4b1b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/toggle/property-editor-ui-toggle.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/toggle/property-editor-ui-toggle.element.ts @@ -1,6 +1,7 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property, state } from 'lit/decorators.js'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbInputToggleElement } from '../../../components/input-toggle/input-toggle.element'; import { UmbLitElement } from '@umbraco-cms/element'; import { DataTypePropertyModel } from '@umbraco-cms/backend-api'; @@ -9,7 +10,7 @@ import { DataTypePropertyModel } from '@umbraco-cms/backend-api'; * @element umb-property-editor-ui-toggle */ @customElement('umb-property-editor-ui-toggle') -export class UmbPropertyEditorUIToggleElement extends UmbLitElement { +export class UmbPropertyEditorUIToggleElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property() diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tree-picker/property-editor-ui-tree-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tree-picker/property-editor-ui-tree-picker.element.ts index 909cd79323..dc03722e39 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tree-picker/property-editor-ui-tree-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tree-picker/property-editor-ui-tree-picker.element.ts @@ -1,13 +1,14 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property } from 'lit/decorators.js'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; /** * @element umb-property-editor-ui-tree-picker */ @customElement('umb-property-editor-ui-tree-picker') -export class UmbPropertyEditorUITreePickerElement extends UmbLitElement { +export class UmbPropertyEditorUITreePickerElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property() diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/upload-field/property-editor-ui-upload-field.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/upload-field/property-editor-ui-upload-field.element.ts index 9687e6838c..aae5553516 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/upload-field/property-editor-ui-upload-field.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/upload-field/property-editor-ui-upload-field.element.ts @@ -1,13 +1,14 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property } from 'lit/decorators.js'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; /** * @element umb-property-editor-ui-upload-field */ @customElement('umb-property-editor-ui-upload-field') -export class UmbPropertyEditorUIUploadFieldElement extends UmbLitElement { +export class UmbPropertyEditorUIUploadFieldElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property() diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/user-picker/property-editor-ui-user-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/user-picker/property-editor-ui-user-picker.element.ts index a66647915e..28b123ef1e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/user-picker/property-editor-ui-user-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/user-picker/property-editor-ui-user-picker.element.ts @@ -1,13 +1,14 @@ import { html } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; /** * @element umb-property-editor-ui-user-picker */ @customElement('umb-property-editor-ui-user-picker') -export class UmbPropertyEditorUIUserPickerElement extends UmbLitElement { +export class UmbPropertyEditorUIUserPickerElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property() diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/value-type/property-editor-ui-value-type.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/value-type/property-editor-ui-value-type.element.ts index 341b8e274c..b9e0a781e1 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/value-type/property-editor-ui-value-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/value-type/property-editor-ui-value-type.element.ts @@ -1,13 +1,14 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property } from 'lit/decorators.js'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; /** * @element umb-property-editor-ui-value-type */ @customElement('umb-property-editor-ui-value-type') -export class UmbPropertyEditorUIValueTypeElement extends UmbLitElement { +export class UmbPropertyEditorUIValueTypeElement extends UmbLitElement implements UmbPropertyEditorElement { static styles = [UUITextStyles]; @property() From 6b93974457cb90cfbe39725233dc05313b88816c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 13 Mar 2023 13:49:03 +0100 Subject: [PATCH 126/134] fix imports --- .../uis/block-grid/property-editor-ui-block-grid.element.ts | 4 ++-- .../checkbox-list/property-editor-ui-checkbox-list.element.ts | 2 +- .../uis/date-picker/property-editor-ui-date-picker.element.ts | 2 +- .../property-editor-ui-document-picker.element.ts | 2 +- .../uis/icon-picker/property-editor-ui-icon-picker.element.ts | 2 +- .../media-picker/property-editor-ui-media-picker.element.ts | 2 +- .../property-editor-ui-multi-url-picker.element.ts | 2 +- .../property-editor-ui-multiple-text-string.element.ts | 2 +- .../number-range/property-editor-ui-number-range.element.ts | 2 +- .../property-editor-ui-radio-button-list.element.ts | 2 +- .../uis/slider/property-editor-ui-slider.element.ts | 2 +- .../uis/textarea/property-editor-ui-textarea.element.ts | 2 +- .../uis/toggle/property-editor-ui-toggle.element.ts | 2 +- 13 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/block-grid/property-editor-ui-block-grid.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/block-grid/property-editor-ui-block-grid.element.ts index 7cc7d10385..88074e0bb5 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/block-grid/property-editor-ui-block-grid.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/block-grid/property-editor-ui-block-grid.element.ts @@ -2,10 +2,10 @@ import { html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { IRoute, IRoutingInfo } from 'router-slot'; -import { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/router'; -import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UMB_WORKSPACE_VARIANT_CONTEXT_TOKEN } from '../../../../shared/components/workspace/workspace-variant/workspace-variant.context'; import { UmbVariantId } from '../../../../shared/variants/variant-id.class'; +import { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/router'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; /** diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts index f4cd0f3718..c46d39e441 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts @@ -1,8 +1,8 @@ import { html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbInputCheckboxListElement } from '../../../components/input-checkbox-list/input-checkbox-list.element'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; import type { DataTypePropertyModel } from '@umbraco-cms/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/date-picker/property-editor-ui-date-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/date-picker/property-editor-ui-date-picker.element.ts index cbaac743c1..07ad88691f 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/date-picker/property-editor-ui-date-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/date-picker/property-editor-ui-date-picker.element.ts @@ -2,8 +2,8 @@ import { html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { InputType } from '@umbraco-ui/uui'; -import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbPropertyValueChangeEvent } from '../..'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; import { PropertyEditorConfigDefaultData } from '@umbraco-cms/extensions-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/document-picker/property-editor-ui-document-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/document-picker/property-editor-ui-document-picker.element.ts index b943d557ef..1247db88b2 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/document-picker/property-editor-ui-document-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/document-picker/property-editor-ui-document-picker.element.ts @@ -1,7 +1,7 @@ import { html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; -import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import type { UmbInputDocumentPickerElement } from '../../../components/input-document-picker/input-document-picker.element'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; import '../../../components/input-document-picker/input-document-picker.element'; import type { DataTypePropertyModel } from '@umbraco-cms/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts index 57306c9c96..8e75f956cd 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts @@ -1,8 +1,8 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property } from 'lit/decorators.js'; -import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UMB_ICON_PICKER_MODAL_TOKEN } from '../../../modals/icon-picker'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UmbLitElement } from '@umbraco-cms/element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/media-picker/property-editor-ui-media-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/media-picker/property-editor-ui-media-picker.element.ts index 1f1dac3fcf..a4228b08eb 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/media-picker/property-editor-ui-media-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/media-picker/property-editor-ui-media-picker.element.ts @@ -1,7 +1,7 @@ import { html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; -import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbInputMediaPickerElement } from '../../../../../backoffice/shared/components/input-media-picker/input-media-picker.element'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; import type { DataTypePropertyModel } from '@umbraco-cms/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts index 0541dd9f46..1d74448439 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts @@ -2,9 +2,9 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property, state } from 'lit/decorators.js'; import { UUIModalSidebarSize } from '@umbraco-ui/uui-modal-sidebar'; -import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbInputMultiUrlPickerElement } from '../../../../shared/components/input-multi-url-picker/input-multi-url-picker.element'; import { UmbLinkPickerLink } from '../../../../shared/modals/link-picker'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; import { DataTypePropertyModel } from '@umbraco-cms/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/property-editor-ui-multiple-text-string.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/property-editor-ui-multiple-text-string.element.ts index cbfac131df..2634afeb01 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/property-editor-ui-multiple-text-string.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/property-editor-ui-multiple-text-string.element.ts @@ -1,11 +1,11 @@ import { html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { ifDefined } from 'lit-html/directives/if-defined.js'; -import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbPropertyValueChangeEvent } from '../..'; import UmbInputMultipleTextStringElement, { MultipleTextStringValue, } from './input-multiple-text-string/input-multiple-text-string.element'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbChangeEvent } from '@umbraco-cms/events'; import { UmbLitElement } from '@umbraco-cms/element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/number-range/property-editor-ui-number-range.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/number-range/property-editor-ui-number-range.element.ts index 377191db13..4f110af285 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/number-range/property-editor-ui-number-range.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/number-range/property-editor-ui-number-range.element.ts @@ -1,8 +1,8 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property, state } from 'lit/decorators.js'; -import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import type { UmbInputNumberRangeElement } from '../../../../shared/components/input-number-range/input-number-range.element'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; import '../../../../shared/components/input-number-range/input-number-range.element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts index 394c30f4fe..da082889df 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts @@ -2,8 +2,8 @@ import { html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import '../../../components/input-radio-button-list/input-radio-button-list.element'; -import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import type { UmbInputRadioButtonListElement } from '../../../components/input-radio-button-list/input-radio-button-list.element'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; import type { DataTypePropertyModel } from '@umbraco-cms/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/slider/property-editor-ui-slider.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/slider/property-editor-ui-slider.element.ts index d95c14f2fb..6e81051161 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/slider/property-editor-ui-slider.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/slider/property-editor-ui-slider.element.ts @@ -1,8 +1,8 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property, state } from 'lit/decorators.js'; -import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import UmbInputSliderElement from '../../../../shared/components/input-slider/input-slider.element'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; import { DataTypePropertyModel } from '@umbraco-cms/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/textarea/property-editor-ui-textarea.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/textarea/property-editor-ui-textarea.element.ts index cf943c33e3..de39bfcbd7 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/textarea/property-editor-ui-textarea.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/textarea/property-editor-ui-textarea.element.ts @@ -2,8 +2,8 @@ import { css, html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property } from 'lit/decorators.js'; import { UUITextareaElement } from '@umbraco-ui/uui'; -import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import type { UmbWorkspacePropertyContext } from '../../../../shared/components/workspace-property/workspace-property.context'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; @customElement('umb-property-editor-ui-textarea') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/toggle/property-editor-ui-toggle.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/toggle/property-editor-ui-toggle.element.ts index 78c31f4b1b..7c942602c3 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/toggle/property-editor-ui-toggle.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/toggle/property-editor-ui-toggle.element.ts @@ -1,8 +1,8 @@ import { html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, property, state } from 'lit/decorators.js'; -import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbInputToggleElement } from '../../../components/input-toggle/input-toggle.element'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; import { UmbLitElement } from '@umbraco-cms/element'; import { DataTypePropertyModel } from '@umbraco-cms/backend-api'; From d506a627e4af656f10613e5e7d78c8d5572b9c08 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 13 Mar 2023 13:51:27 +0100 Subject: [PATCH 127/134] move notification default layout to src/core --- .../notification-layout-default.stories.ts | 22 ---------------- .../notification/notification-handler.test.ts | 7 +++--- .../libs/notification/notification-handler.ts | 4 +-- src/Umbraco.Web.UI.Client/src/app.ts | 1 + .../notification/layouts/default/index.ts | 0 .../notification-layout-default.element.ts | 13 ++++++---- .../notification-layout-default.stories.ts | 25 +++++++++++++++++++ .../notification-layout-default.test.ts | 13 +++++++--- .../notification/stories/notification.mdx | 0 .../stories/notification.stories.ts | 7 +++--- ...ry-notification-default-example.element.ts | 11 +++++--- 11 files changed, 59 insertions(+), 44 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/libs/notification/layouts/default/notification-layout-default.stories.ts rename src/Umbraco.Web.UI.Client/{libs => src/core}/notification/layouts/default/index.ts (100%) rename src/Umbraco.Web.UI.Client/{libs => src/core}/notification/layouts/default/notification-layout-default.element.ts (73%) create mode 100644 src/Umbraco.Web.UI.Client/src/core/notification/layouts/default/notification-layout-default.stories.ts rename src/Umbraco.Web.UI.Client/{libs => src/core}/notification/layouts/default/notification-layout-default.test.ts (80%) rename src/Umbraco.Web.UI.Client/{libs => src/core}/notification/stories/notification.mdx (100%) rename src/Umbraco.Web.UI.Client/{libs => src/core}/notification/stories/notification.stories.ts (82%) rename src/Umbraco.Web.UI.Client/{libs => src/core}/notification/stories/story-notification-default-example.element.ts (87%) diff --git a/src/Umbraco.Web.UI.Client/libs/notification/layouts/default/notification-layout-default.stories.ts b/src/Umbraco.Web.UI.Client/libs/notification/layouts/default/notification-layout-default.stories.ts deleted file mode 100644 index 3ecd5ca8f7..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/notification/layouts/default/notification-layout-default.stories.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; -import { UmbNotificationLayoutDefaultElement, UmbNotificationDefaultData } from '.'; - -export default { - title: 'API/Notifications/Layouts/Default', - component: 'umb-notification-layout-default', - id: 'notification-layout-default', -} as Meta; - -const data: UmbNotificationDefaultData = { - headline: 'Headline', - message: 'This is a default notification', -}; - -const Template: Story = () => html` - - - -`; - -export const Default = Template.bind({}); diff --git a/src/Umbraco.Web.UI.Client/libs/notification/notification-handler.test.ts b/src/Umbraco.Web.UI.Client/libs/notification/notification-handler.test.ts index 043e9d716d..f6b8cd4b5a 100644 --- a/src/Umbraco.Web.UI.Client/libs/notification/notification-handler.test.ts +++ b/src/Umbraco.Web.UI.Client/libs/notification/notification-handler.test.ts @@ -3,14 +3,13 @@ import { validate as uuidValidate } from 'uuid'; import { UmbNotificationHandler } from './notification-handler'; -import type { UmbNotificationDefaultData } from './layouts/default'; import type { UmbNotificationOptions } from './notification.context'; describe('UmbNotificationHandler', () => { let notificationHandler: UmbNotificationHandler; beforeEach(async () => { - const options: UmbNotificationOptions = {}; + const options: UmbNotificationOptions = {}; notificationHandler = new UmbNotificationHandler(options); }); @@ -72,7 +71,7 @@ describe('UmbNotificationHandler', () => { let layoutElement: any; beforeEach(async () => { - const options: UmbNotificationOptions = { + const options: UmbNotificationOptions = { color: 'positive', data: { message: 'Notification default layout message', @@ -100,7 +99,7 @@ describe('UmbNotificationHandler', () => { let layoutElement: any; beforeEach(async () => { - const options: UmbNotificationOptions = { + const options: UmbNotificationOptions = { elementName: 'umb-notification-test-element', color: 'positive', data: { diff --git a/src/Umbraco.Web.UI.Client/libs/notification/notification-handler.ts b/src/Umbraco.Web.UI.Client/libs/notification/notification-handler.ts index c249effe09..3ef8958993 100644 --- a/src/Umbraco.Web.UI.Client/libs/notification/notification-handler.ts +++ b/src/Umbraco.Web.UI.Client/libs/notification/notification-handler.ts @@ -1,8 +1,6 @@ import { UUIToastNotificationElement } from '@umbraco-ui/uui'; import { v4 as uuidv4 } from 'uuid'; -import type { UmbNotificationOptions, UmbNotificationColor, UmbNotificationDefaultData } from '.'; - -import './layouts/default'; +import type { UmbNotificationOptions, UmbNotificationColor, UmbNotificationDefaultData } from './notification.context'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/src/app.ts b/src/Umbraco.Web.UI.Client/src/app.ts index 3dafb8e9df..10fd0f49e3 100644 --- a/src/Umbraco.Web.UI.Client/src/app.ts +++ b/src/Umbraco.Web.UI.Client/src/app.ts @@ -9,6 +9,7 @@ import '@umbraco-ui/uui-modal-sidebar'; import 'element-internals-polyfill'; import './core/router/router-slot.element'; +import './core/notification/layouts/default'; import { UUIIconRegistryEssential } from '@umbraco-ui/uui'; import { css, html } from 'lit'; diff --git a/src/Umbraco.Web.UI.Client/libs/notification/layouts/default/index.ts b/src/Umbraco.Web.UI.Client/src/core/notification/layouts/default/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/notification/layouts/default/index.ts rename to src/Umbraco.Web.UI.Client/src/core/notification/layouts/default/index.ts diff --git a/src/Umbraco.Web.UI.Client/libs/notification/layouts/default/notification-layout-default.element.ts b/src/Umbraco.Web.UI.Client/src/core/notification/layouts/default/notification-layout-default.element.ts similarity index 73% rename from src/Umbraco.Web.UI.Client/libs/notification/layouts/default/notification-layout-default.element.ts rename to src/Umbraco.Web.UI.Client/src/core/notification/layouts/default/notification-layout-default.element.ts index aa54b5be9e..9865415b78 100644 --- a/src/Umbraco.Web.UI.Client/libs/notification/layouts/default/notification-layout-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/core/notification/layouts/default/notification-layout-default.element.ts @@ -2,12 +2,9 @@ import { html, LitElement } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { ifDefined } from 'lit/directives/if-defined.js'; import { UUITextStyles } from '@umbraco-ui/uui-css'; -import type { UmbNotificationHandler } from '../..'; +import type { UmbNotificationDefaultData, UmbNotificationHandler } from '@umbraco-cms/notification'; -export interface UmbNotificationDefaultData { - message: string; - headline?: string; -} +export type { UmbNotificationDefaultData }; @customElement('umb-notification-layout-default') export class UmbNotificationLayoutDefaultElement extends LitElement { @@ -27,3 +24,9 @@ export class UmbNotificationLayoutDefaultElement extends LitElement { `; } } + +declare global { + interface HTMLElementTagNameMap { + 'umb-notification-layout-default': UmbNotificationLayoutDefaultElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/core/notification/layouts/default/notification-layout-default.stories.ts b/src/Umbraco.Web.UI.Client/src/core/notification/layouts/default/notification-layout-default.stories.ts new file mode 100644 index 0000000000..6a10618626 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/core/notification/layouts/default/notification-layout-default.stories.ts @@ -0,0 +1,25 @@ +import { Meta, Story } from '@storybook/web-components'; +import { html } from 'lit'; +import type { UmbNotificationLayoutDefaultElement } from './notification-layout-default.element'; + +import './notification-layout-default.element'; + +export default { + title: 'API/Notifications/Layouts/Default', + component: 'umb-notification-layout-default', + id: 'notification-layout-default', + args: { + data: { + headline: 'Headline', + message: 'This is a default notification', + }, + }, +} as Meta; + +const Template: Story = (props) => html` + + + +`; + +export const Default = Template.bind({}); diff --git a/src/Umbraco.Web.UI.Client/libs/notification/layouts/default/notification-layout-default.test.ts b/src/Umbraco.Web.UI.Client/src/core/notification/layouts/default/notification-layout-default.test.ts similarity index 80% rename from src/Umbraco.Web.UI.Client/libs/notification/layouts/default/notification-layout-default.test.ts rename to src/Umbraco.Web.UI.Client/src/core/notification/layouts/default/notification-layout-default.test.ts index 289bf3a122..740526e1c6 100644 --- a/src/Umbraco.Web.UI.Client/libs/notification/layouts/default/notification-layout-default.test.ts +++ b/src/Umbraco.Web.UI.Client/src/core/notification/layouts/default/notification-layout-default.test.ts @@ -1,8 +1,7 @@ import { fixture, expect, html } from '@open-wc/testing'; import { UUIToastNotificationLayoutElement } from '@umbraco-ui/uui'; -import { UmbNotificationHandler } from '../..'; -import type { UmbNotificationLayoutDefaultElement, UmbNotificationDefaultData } from '.'; -import '.'; +import { UmbNotificationLayoutDefaultElement, UmbNotificationDefaultData } from './notification-layout-default.element'; +import { UmbNotificationHandler } from '@umbraco-cms/notification'; describe('UmbNotificationLayoutDefault', () => { let element: UmbNotificationLayoutDefaultElement; @@ -25,6 +24,14 @@ describe('UmbNotificationLayoutDefault', () => { ); }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbNotificationLayoutDefaultElement); + }); + + it('passes the a11y audit', async () => { + await expect(element).to.be.accessible(); + }); + describe('Public API', () => { describe('properties', () => { it('has a notificationHandler property', () => { diff --git a/src/Umbraco.Web.UI.Client/libs/notification/stories/notification.mdx b/src/Umbraco.Web.UI.Client/src/core/notification/stories/notification.mdx similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/notification/stories/notification.mdx rename to src/Umbraco.Web.UI.Client/src/core/notification/stories/notification.mdx diff --git a/src/Umbraco.Web.UI.Client/libs/notification/stories/notification.stories.ts b/src/Umbraco.Web.UI.Client/src/core/notification/stories/notification.stories.ts similarity index 82% rename from src/Umbraco.Web.UI.Client/libs/notification/stories/notification.stories.ts rename to src/Umbraco.Web.UI.Client/src/core/notification/stories/notification.stories.ts index 16872f9f7d..8d019e412e 100644 --- a/src/Umbraco.Web.UI.Client/libs/notification/stories/notification.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/core/notification/stories/notification.stories.ts @@ -1,13 +1,12 @@ -import '../layouts/default'; +import './story-notification-default-example.element'; import { Meta, Story } from '@storybook/web-components'; import { html } from 'lit'; - -import { UmbNotificationContext } from '..'; +import { UmbNotificationContext } from '@umbraco-cms/notification'; export default { title: 'API/Notifications/Overview', - component: 'ucp-notification-layout-default', + component: 'umb-notification-layout-default', decorators: [ (story) => html` diff --git a/src/Umbraco.Web.UI.Client/libs/notification/stories/story-notification-default-example.element.ts b/src/Umbraco.Web.UI.Client/src/core/notification/stories/story-notification-default-example.element.ts similarity index 87% rename from src/Umbraco.Web.UI.Client/libs/notification/stories/story-notification-default-example.element.ts rename to src/Umbraco.Web.UI.Client/src/core/notification/stories/story-notification-default-example.element.ts index 4b965c60f2..b22fefe7ba 100644 --- a/src/Umbraco.Web.UI.Client/libs/notification/stories/story-notification-default-example.element.ts +++ b/src/Umbraco.Web.UI.Client/src/core/notification/stories/story-notification-default-example.element.ts @@ -1,12 +1,11 @@ import { html } from 'lit'; import { customElement } from 'lit/decorators.js'; -import { UmbNotificationDefaultData } from '../layouts/default'; import { UmbNotificationColor, UmbNotificationOptions, UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN, -} from '..'; +} from '@umbraco-cms/notification'; import { UmbLitElement } from '@umbraco-cms/element'; @customElement('story-notification-default-example') @@ -22,7 +21,7 @@ export class StoryNotificationDefaultExampleElement extends UmbLitElement { } private _handleNotification = (color: UmbNotificationColor) => { - const options: UmbNotificationOptions = { + const options: UmbNotificationOptions = { data: { headline: 'Headline', message: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit', @@ -54,3 +53,9 @@ export class StoryNotificationDefaultExampleElement extends UmbLitElement { `; } } + +declare global { + interface HTMLElementTagNameMap { + 'story-notification-default-example': StoryNotificationDefaultExampleElement; + } +} From 6dc4c32e6b9007bc93e6b613e8b941ff91b20c86 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 13 Mar 2023 13:51:36 +0100 Subject: [PATCH 128/134] add rollup to notification lib --- src/Umbraco.Web.UI.Client/libs/notification/rollup.config.js | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/libs/notification/rollup.config.js diff --git a/src/Umbraco.Web.UI.Client/libs/notification/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/notification/rollup.config.js new file mode 100644 index 0000000000..35421e5ce7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/libs/notification/rollup.config.js @@ -0,0 +1,3 @@ +import config from '../../utils/rollup.config.js'; + +export default config; From 6449656ba37473003b5aff92fecc7c8be20c07b0 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 13 Mar 2023 13:57:10 +0100 Subject: [PATCH 129/134] mark certain libs as external to prevent them from being included in the types --- src/Umbraco.Web.UI.Client/utils/rollup.config.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/utils/rollup.config.js b/src/Umbraco.Web.UI.Client/utils/rollup.config.js index 1f50c0ba4b..ce5b924ecc 100644 --- a/src/Umbraco.Web.UI.Client/utils/rollup.config.js +++ b/src/Umbraco.Web.UI.Client/utils/rollup.config.js @@ -17,11 +17,11 @@ export default [ }, { input: 'index.ts', - external: [/^@umbraco-cms\//], + external: [/^@umbraco-cms\//, /^lit/, /^rxjs/], output: { file: './dist/index.d.ts', format: 'es' }, - plugins: [dts()], + plugins: [dts({ respectExternal: true })], } ]; From 12bd6decea64ea0fe47f5df9ea34c97f8047d5ab Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 13 Mar 2023 16:42:38 +0100 Subject: [PATCH 130/134] make import from uui more specific to avoid getting the whole commonjs module in the rollup bundle --- src/Umbraco.Web.UI.Client/libs/store/icon/icon.store.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/libs/store/icon/icon.store.ts b/src/Umbraco.Web.UI.Client/libs/store/icon/icon.store.ts index ad55a9948d..db6e4f237c 100644 --- a/src/Umbraco.Web.UI.Client/libs/store/icon/icon.store.ts +++ b/src/Umbraco.Web.UI.Client/libs/store/icon/icon.store.ts @@ -1,4 +1,4 @@ -import { UUIIconRegistry } from '@umbraco-ui/uui'; +import { UUIIconRegistry } from '@umbraco-ui/uui-icon-registry'; import icons from '../../../public-assets/icons/icons.json'; interface UmbIconDescriptor { From b45768e9d65707387bc223ac9190337fc504ebdb Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 13 Mar 2023 16:42:54 +0100 Subject: [PATCH 131/134] add rollup.config.ts to model libs --- src/Umbraco.Web.UI.Client/libs/entity-action/rollup.config.js | 3 +++ src/Umbraco.Web.UI.Client/libs/events/rollup.config.js | 3 +++ src/Umbraco.Web.UI.Client/libs/repository/rollup.config.js | 3 +++ 3 files changed, 9 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/libs/entity-action/rollup.config.js create mode 100644 src/Umbraco.Web.UI.Client/libs/events/rollup.config.js create mode 100644 src/Umbraco.Web.UI.Client/libs/repository/rollup.config.js diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/entity-action/rollup.config.js new file mode 100644 index 0000000000..35421e5ce7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/libs/entity-action/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/libs/events/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/events/rollup.config.js new file mode 100644 index 0000000000..35421e5ce7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/libs/events/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/libs/repository/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/repository/rollup.config.js new file mode 100644 index 0000000000..35421e5ce7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/libs/repository/rollup.config.js @@ -0,0 +1,3 @@ +import config from '../../utils/rollup.config.js'; + +export default config; From 535fc2f252a54afaf5f778257c70761b546cf386 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 13 Mar 2023 16:43:07 +0100 Subject: [PATCH 132/134] add rollup.config.js to store lib --- src/Umbraco.Web.UI.Client/libs/store/rollup.config.js | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/libs/store/rollup.config.js diff --git a/src/Umbraco.Web.UI.Client/libs/store/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/store/rollup.config.js new file mode 100644 index 0000000000..35421e5ce7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/libs/store/rollup.config.js @@ -0,0 +1,3 @@ +import config from '../../utils/rollup.config.js'; + +export default config; From 2eff95043cc064d137c0408a29a835e699cc8a92 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Tue, 14 Mar 2023 10:21:34 +0100 Subject: [PATCH 133/134] import aliases --- src/Umbraco.Web.UI.Client/.eslintrc.json | 2 +- .../workspace/document-type-workspace.stories.ts | 5 +++-- .../media/entity-bulk-actions/trash/trash.action.ts | 2 +- .../media/media/workspace/media-workspace.stories.ts | 2 +- .../members/members/member.detail.store.ts | 2 +- .../created/packages-created-overview.element.ts | 2 +- .../installed-packages-section-view-item.element.ts | 2 +- .../views/section-view-examine-indexers.ts | 2 +- .../workspace/extension-root-workspace.element.ts | 2 +- .../input-language-picker.element.ts | 2 +- .../input-user-group/input-user-group.element.ts | 2 +- .../components/input-user/input-user.element.ts | 2 +- .../property-editor-ui-icon-picker.stories.ts | 2 +- .../input-multiple-text-string-item.element.ts | 2 +- .../user-group-table-name-column-layout.element.ts | 2 +- ...ser-group-table-sections-column-layout.element.ts | 2 +- .../workspace-view-user-groups.element.ts | 12 +++++++----- .../table/workspace-view-users-table.element.ts | 8 ++++---- .../users/workspace-view-users-selection.element.ts | 2 +- 19 files changed, 30 insertions(+), 27 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/.eslintrc.json b/src/Umbraco.Web.UI.Client/.eslintrc.json index 69579d3900..7725f81d2c 100644 --- a/src/Umbraco.Web.UI.Client/.eslintrc.json +++ b/src/Umbraco.Web.UI.Client/.eslintrc.json @@ -34,7 +34,7 @@ "import/order": "warn", "local-rules/bad-type-import": "error", "local-rules/no-direct-api-import": "warn", - "local-rules/prefer-import-aliases": "warn", + "local-rules/prefer-import-aliases": "error", "@typescript-eslint/no-non-null-assertion": "off" }, "settings": { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.stories.ts index 576ba9435f..19eec3849c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.stories.ts @@ -1,8 +1,9 @@ import './document-type-workspace.element'; import { Meta, Story } from '@storybook/web-components'; import { html } from 'lit-html'; +import { ifDefined } from 'lit/directives/if-defined.js'; +import { treeData } from '../../../../core/mocks/data/document-type.data'; import type { UmbDocumentTypeWorkspaceElement } from './document-type-workspace.element'; -import { treeData } from 'src/core/mocks/data/document-type.data'; export default { title: 'Workspaces/Document Type', @@ -11,5 +12,5 @@ export default { } as Meta; export const AAAOverview: Story = () => - html` `; + html` `; AAAOverview.storyName = 'Overview'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/trash/trash.action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/trash/trash.action.ts index c4d2a6a7cd..4ff8837bfd 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/trash/trash.action.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/trash/trash.action.ts @@ -1,10 +1,10 @@ import { html } from 'lit'; import type { UmbMediaRepository } from '../../repository/media.repository'; +import { UMB_CONFIRM_MODAL_TOKEN } from '../../../../shared/modals/confirm'; import { UmbEntityBulkActionBase } from '@umbraco-cms/entity-action'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; -import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; export class UmbMediaTrashEntityBulkAction extends UmbEntityBulkActionBase { #modalContext?: UmbModalContext; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/workspace/media-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/workspace/media-workspace.stories.ts index e888dd5f0f..019047dc04 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/workspace/media-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/workspace/media-workspace.stories.ts @@ -1,8 +1,8 @@ import './media-workspace.element'; import { Meta, Story } from '@storybook/web-components'; import { html } from 'lit-html'; +import { data as mediaNodes } from '../../../../core/mocks/data/media.data'; import type { UmbMediaWorkspaceElement } from './media-workspace.element'; -import { data as mediaNodes } from 'src/core/mocks/data/media.data'; export default { title: 'Workspaces/Media', diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/members/members/member.detail.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/members/members/member.detail.store.ts index 0a79950126..a3a52703fb 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/members/members/member.detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/members/members/member.detail.store.ts @@ -1,10 +1,10 @@ import { Observable } from 'rxjs'; +import { umbMemberData } from '../../../core/mocks/data/member.data'; import type { MemberDetails, MemberGroupDetails } from '@umbraco-cms/models'; import { UmbContextToken } from '@umbraco-cms/context-api'; import { ArrayState, createObservablePart } from '@umbraco-cms/observable-api'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbEntityDetailStore, UmbStoreBase } from '@umbraco-cms/store'; -import { umbMemberData } from 'src/core/mocks/data/member.data'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/created/packages-created-overview.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/created/packages-created-overview.element.ts index 0d23f0c4ef..5d85638acc 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/created/packages-created-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/created/packages-created-overview.element.ts @@ -3,11 +3,11 @@ import { ifDefined } from 'lit/directives/if-defined.js'; import { customElement, state } from 'lit/decorators.js'; import { repeat } from 'lit/directives/repeat.js'; import { UUIPaginationEvent } from '@umbraco-ui/uui'; +import { UMB_CONFIRM_MODAL_TOKEN } from '../../../../shared/modals/confirm'; import { PackageDefinitionModel, PackageResource } from '@umbraco-cms/backend-api'; import { UmbLitElement } from '@umbraco-cms/element'; import { tryExecuteAndNotify } from '@umbraco-cms/resources'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; -import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; @customElement('umb-packages-created-overview') export class UmbPackagesCreatedOverviewElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts index e8ff26a0dd..063afe1b25 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/packages/package-section/views/installed/installed-packages-section-view-item.element.ts @@ -4,6 +4,7 @@ import { customElement, property, state } from 'lit/decorators.js'; import { firstValueFrom, map } from 'rxjs'; import { UUIButtonState } from '@umbraco-ui/uui'; +import { UMB_CONFIRM_MODAL_TOKEN } from '../../../../shared/modals/confirm'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { createExtensionElement, umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; @@ -12,7 +13,6 @@ import { UmbLitElement } from '@umbraco-cms/element'; import { tryExecuteAndNotify } from '@umbraco-cms/resources'; import { PackageResource } from '@umbraco-cms/backend-api'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/notification'; -import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; @customElement('umb-installed-packages-section-view-item') export class UmbInstalledPackagesSectionViewItem extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/section-view-examine-indexers.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/section-view-examine-indexers.ts index 1fcfb4384d..99d08ebf41 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/section-view-examine-indexers.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/examine-management/views/section-view-examine-indexers.ts @@ -2,11 +2,11 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html, nothing } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { UUIButtonState } from '@umbraco-ui/uui-button'; +import { UMB_CONFIRM_MODAL_TOKEN } from '../../../../shared/modals/confirm'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { HealthStatusModel, IndexModel, IndexerResource } from '@umbraco-cms/backend-api'; import { UmbLitElement } from '@umbraco-cms/element'; import { tryExecuteAndNotify } from '@umbraco-cms/resources'; -import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; import './section-view-examine-searchers'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/extensions/workspace/extension-root-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/extensions/workspace/extension-root-workspace.element.ts index f53810199b..2f5d2ecfcb 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/extensions/workspace/extension-root-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/extensions/workspace/extension-root-workspace.element.ts @@ -1,10 +1,10 @@ import { html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; +import { UMB_CONFIRM_MODAL_TOKEN } from '../../../shared/modals/confirm'; import { isManifestElementNameType, umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; import type { ManifestBase } from '@umbraco-cms/models'; import { UmbLitElement } from '@umbraco-cms/element'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; -import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; @customElement('umb-extension-root-workspace') export class UmbExtensionRootWorkspaceElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts index 4b4bcc091d..c9eb2bd3ca 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-language-picker/input-language-picker.element.ts @@ -5,12 +5,12 @@ import { ifDefined } from 'lit-html/directives/if-defined.js'; import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; import { UmbLanguageRepository } from '../../../settings/languages/repository/language.repository'; import { UMB_CONFIRM_MODAL_TOKEN } from '../../modals/confirm'; +import { UMB_LANGUAGE_PICKER_MODAL_TOKEN } from '../../../settings/languages/modals/language-picker'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UmbChangeEvent } from '@umbraco-cms/events'; import { UmbLitElement } from '@umbraco-cms/element'; import type { LanguageModel } from '@umbraco-cms/backend-api'; import type { UmbObserverController } from '@umbraco-cms/observable-api'; -import { UMB_LANGUAGE_PICKER_MODAL_TOKEN } from 'src/backoffice/settings/languages/modals/language-picker'; @customElement('umb-input-language-picker') export class UmbInputLanguagePickerElement extends FormControlMixin(UmbLitElement) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-user-group/input-user-group.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-user-group/input-user-group.element.ts index 8bbe14fe27..bce191a089 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-user-group/input-user-group.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-user-group/input-user-group.element.ts @@ -7,8 +7,8 @@ import { UMB_USER_GROUP_STORE_CONTEXT_TOKEN, } from '../../../users/user-groups/repository/user-group.store'; +import { UMB_USER_GROUP_PICKER_MODAL_TOKEN } from '../../../users/user-groups/modals/user-group-picker'; import type { UserGroupEntity } from '@umbraco-cms/models'; -import { UMB_USER_GROUP_PICKER_MODAL_TOKEN } from 'src/backoffice/users/user-groups/modals/user-group-picker'; @customElement('umb-input-user-group') export class UmbInputPickerUserGroupElement extends UmbInputListBase { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-user/input-user.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-user/input-user.element.ts index 28250e8fd2..b2e077a60d 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-user/input-user.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/input-user/input-user.element.ts @@ -3,8 +3,8 @@ import { css, html, nothing, PropertyValueMap } from 'lit'; import { customElement, state } from 'lit/decorators.js'; import { UmbInputListBase } from '../input-list-base/input-list-base'; import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../../users/users/repository/user.store'; +import { UMB_USER_PICKER_MODAL_TOKEN } from '../../../users/users/modals/user-picker'; import type { UserEntity } from '@umbraco-cms/models'; -import { UMB_USER_PICKER_MODAL_TOKEN } from 'src/backoffice/users/users/modals/user-picker'; @customElement('umb-input-user') export class UmbPickerUserElement extends UmbInputListBase { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.stories.ts index b48f69befe..37beb48855 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/icon-picker/property-editor-ui-icon-picker.stories.ts @@ -1,9 +1,9 @@ import { Meta, Story } from '@storybook/web-components'; import { html } from 'lit-html'; +import type { UmbIconPickerModalElement } from '../../../../shared/modals/icon-picker/icon-picker-modal.element'; import type { UmbPropertyEditorUIIconPickerElement } from './property-editor-ui-icon-picker.element'; import './property-editor-ui-icon-picker.element'; -import type { UmbIconPickerModalElement } from 'src/backoffice/shared/modals/icon-picker/icon-picker-modal.element'; export default { title: 'Property Editor UIs/Icon Picker', diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts index 44ce7f16a8..2c187b7e19 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts @@ -4,10 +4,10 @@ import { customElement, property, query } from 'lit/decorators.js'; import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; import { UUIInputEvent } from '@umbraco-ui/uui-input'; import { UUIInputElement } from '@umbraco-ui/uui'; +import { UMB_CONFIRM_MODAL_TOKEN } from '../../../../modals/confirm'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/modal'; import { UmbChangeEvent, UmbInputEvent, UmbDeleteEvent } from '@umbraco-cms/events'; import { UmbLitElement } from '@umbraco-cms/element'; -import { UMB_CONFIRM_MODAL_TOKEN } from 'src/backoffice/shared/modals/confirm'; /** * @element umb-input-multiple-text-string-item diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/user-groups/user-group-table-name-column-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/user-groups/user-group-table-name-column-layout.element.ts index 5bab9476c1..4a1f79127f 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/user-groups/user-group-table-name-column-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/user-groups/user-group-table-name-column-layout.element.ts @@ -1,6 +1,6 @@ import { html, LitElement } from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { UmbTableItem } from 'src/backoffice/shared/components/table'; +import { UmbTableItem } from '../../../../shared/components/table'; @customElement('umb-user-group-table-name-column-layout') export class UmbUserGroupTableNameColumnLayoutElement extends LitElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/user-groups/user-group-table-sections-column-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/user-groups/user-group-table-sections-column-layout.element.ts index d63199aba5..e966a125ee 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/user-groups/user-group-table-sections-column-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/user-groups/user-group-table-sections-column-layout.element.ts @@ -1,7 +1,7 @@ import { html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; +import { UmbTableItem } from '../../../../shared/components/table'; import { umbExtensionsRegistry } from '@umbraco-cms/extensions-api'; -import { UmbTableItem } from 'src/backoffice/shared/components/table'; import { UmbLitElement } from '@umbraco-cms/element'; @customElement('umb-user-group-table-sections-column-layout') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/user-groups/workspace-view-user-groups.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/user-groups/workspace-view-user-groups.element.ts index 9c2e101940..4e2940ab73 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/user-groups/workspace-view-user-groups.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/user-groups/workspace-view-user-groups.element.ts @@ -1,6 +1,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; + import { UmbTableColumn, UmbTableConfig, @@ -9,15 +10,16 @@ import { UmbTableItem, UmbTableOrderedEvent, UmbTableSelectedEvent, -} from 'src/backoffice/shared/components/table'; +} from '../../../../shared/components/table'; +import { + UmbUserGroupStore, + UMB_USER_GROUP_STORE_CONTEXT_TOKEN, +} from '../../../user-groups/repository/user-group.store'; + import type { UserGroupDetails } from '@umbraco-cms/models'; import './user-group-table-name-column-layout.element'; import './user-group-table-sections-column-layout.element'; -import { - UmbUserGroupStore, - UMB_USER_GROUP_STORE_CONTEXT_TOKEN, -} from 'src/backoffice/users/user-groups/repository/user-group.store'; import { UmbLitElement } from '@umbraco-cms/element'; @customElement('umb-workspace-view-user-groups') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/list-view-layouts/table/workspace-view-users-table.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/list-view-layouts/table/workspace-view-users-table.element.ts index eb997c2d60..341bae823e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/list-view-layouts/table/workspace-view-users-table.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/list-view-layouts/table/workspace-view-users-table.element.ts @@ -11,14 +11,14 @@ import { UmbTableConfig, UmbTableOrderedEvent, } from '../../../../../../shared/components/table/table.element'; +import { + UmbUserGroupStore, + UMB_USER_GROUP_STORE_CONTEXT_TOKEN, +} from '../../../../../user-groups/repository/user-group.store'; import type { UserDetails, UserGroupEntity } from '@umbraco-cms/models'; import './column-layouts/name/user-table-name-column-layout.element'; import './column-layouts/status/user-table-status-column-layout.element'; -import { - UmbUserGroupStore, - UMB_USER_GROUP_STORE_CONTEXT_TOKEN, -} from 'src/backoffice/users/user-groups/repository/user-group.store'; import { UmbLitElement } from '@umbraco-cms/element'; @customElement('umb-workspace-view-users-table') diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-selection.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-selection.element.ts index 8a293d92da..1b2c0a24ab 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-selection.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/workspace-view-users-selection.element.ts @@ -1,8 +1,8 @@ import { css, html } from 'lit'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, state } from 'lit/decorators.js'; +import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../../../users/users/repository/user.store'; import { UmbSectionViewUsersElement } from './section-view-users.element'; -import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from 'src/backoffice/users/users/repository/user.store'; import { UmbLitElement } from '@umbraco-cms/element'; @customElement('umb-workspace-view-users-selection') From 61d290668eeed1bce6ebca216562161cfde912d7 Mon Sep 17 00:00:00 2001 From: Warren Buckley Date: Tue, 14 Mar 2023 10:23:53 +0000 Subject: [PATCH 134/134] Update to Storybook 7.0.0-rc.3 --- src/Umbraco.Web.UI.Client/package-lock.json | 1394 +++++++++---------- src/Umbraco.Web.UI.Client/package.json | 14 +- 2 files changed, 704 insertions(+), 704 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 9228699b0d..45bc7cf754 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -28,13 +28,13 @@ "@open-wc/testing": "^3.1.7", "@playwright/test": "^1.30.0", "@rollup/plugin-json": "^6.0.0", - "@storybook/addon-a11y": "^7.0.0-beta.59", - "@storybook/addon-actions": "^7.0.0-beta.59", - "@storybook/addon-essentials": "^7.0.0-beta.59", - "@storybook/addon-links": "^7.0.0-beta.59", + "@storybook/addon-a11y": "^7.0.0-rc.3", + "@storybook/addon-actions": "^7.0.0-rc.3", + "@storybook/addon-essentials": "^7.0.0-rc.3", + "@storybook/addon-links": "^7.0.0-rc.3", "@storybook/mdx2-csf": "^1.0.0-next.5", - "@storybook/web-components": "^7.0.0-beta.59", - "@storybook/web-components-vite": "^7.0.0-beta.59", + "@storybook/web-components": "^7.0.0-rc.3", + "@storybook/web-components-vite": "^7.0.0-rc.3", "@types/chai": "^4.3.4", "@types/lodash-es": "^4.17.6", "@types/mocha": "^10.0.0", @@ -69,7 +69,7 @@ "rollup-plugin-dts": "^5.2.0", "rollup-plugin-esbuild": "^5.0.0", "rollup-plugin-url": "^3.0.1", - "storybook": "^7.0.0-beta.59", + "storybook": "^7.0.0-rc.3", "tiny-glob": "^0.2.9", "typescript": "^4.9.5", "vite": "^4.1.4", @@ -2264,22 +2264,22 @@ } }, "node_modules/@jest/transform": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.4.3.tgz", - "integrity": "sha512-8u0+fBGWolDshsFgPQJESkDa72da/EVwvL+II0trN2DR66wMwiQ9/CihaGfHdlLGFzbBZwMykFtxuwFdZqlKwg==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", + "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/types": "^29.4.3", + "@jest/types": "^29.5.0", "@jridgewell/trace-mapping": "^0.3.15", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.4.3", + "jest-haste-map": "^29.5.0", "jest-regex-util": "^29.4.3", - "jest-util": "^29.4.3", + "jest-util": "^29.5.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -2348,9 +2348,9 @@ } }, "node_modules/@jest/types": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.4.3.tgz", - "integrity": "sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", + "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", "dev": true, "dependencies": { "@jest/schemas": "^29.4.3", @@ -2810,21 +2810,21 @@ "dev": true }, "node_modules/@storybook/addon-a11y": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-7.0.0-beta.59.tgz", - "integrity": "sha512-rQLyNv/qmxjQD750MUO8YKZikVHtvYDD6IsJxrhO4xM0UUqaOeZC1JUeppNJKCwItyB3AyANcy6Cl8O0Cc/U3Q==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-7.0.0-rc.3.tgz", + "integrity": "sha512-V/wl19IzsOA0OkUofKKbL09Qj93ywRHW3Pjq3pOLRE178zCumWuBKxpr+dS4C1lNwecIU1ffp8408RSzZ4K5sA==", "dev": true, "dependencies": { - "@storybook/addon-highlight": "7.0.0-beta.59", - "@storybook/channels": "7.0.0-beta.59", - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/components": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/addon-highlight": "7.0.0-rc.3", + "@storybook/channels": "7.0.0-rc.3", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/components": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/theming": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/theming": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "axe-core": "^4.2.0", "lodash": "^4.17.21", "react-resize-detector": "^7.1.2" @@ -2847,19 +2847,19 @@ } }, "node_modules/@storybook/addon-actions": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.0.0-beta.59.tgz", - "integrity": "sha512-yK4fZCkYG+/FppEw/a1eUFIiNEEmElzlo42TXn0DHywsZaBEMei5JCvqh1+KprUVJo20mGuTxLDMkRri4JHXYw==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.0.0-rc.3.tgz", + "integrity": "sha512-kyPuSN/PzBnW3w9D/KBEmMqfeGpBeY6Ha2VVPz3BBqcWSHfw0AbHFqvnqluubaHZl1VokE88QT6RxkdyBg33uw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/components": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/components": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/theming": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/theming": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "dequal": "^2.0.2", "lodash": "^4.17.21", "polished": "^4.2.2", @@ -2887,19 +2887,19 @@ } }, "node_modules/@storybook/addon-backgrounds": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.0.0-beta.59.tgz", - "integrity": "sha512-eB30laoU/5uqk6Q6zYb6ckkkvxXCi6O/vf0kg5H8RzKOwHc+OccCqCNLSKltoKTD3OGzGj6T+dLSCdzRcQ3+PQ==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.0.0-rc.3.tgz", + "integrity": "sha512-6qIwuNwzLFdsLCjj5rO6TCaBvAGUYbrLpw2EQyKg5J/5GxqhMU/HsinCViok2VEn/z45vji9FI1W6bmo7t4LNQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/components": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/components": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/theming": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/theming": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "memoizerific": "^1.11.3", "ts-dedent": "^2.0.0" }, @@ -2921,20 +2921,20 @@ } }, "node_modules/@storybook/addon-controls": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.0.0-beta.59.tgz", - "integrity": "sha512-pSpIxKYLAcvgp5eOC44BEY4jIW5rjCSvqchieblflF4eScPy886gC1nPRV3oo7QRckiZT3HE5UZ96YK1U3Ahew==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.0.0-rc.3.tgz", + "integrity": "sha512-16E0AJ1+psFDbL6abOfLFg0zWhUQeJjcM3RKEzJjYZEBuKKL86LAvKhnlkyCUW3VlLN23V0akY6Gev81DR/BfA==", "dev": true, "dependencies": { - "@storybook/blocks": "7.0.0-beta.59", - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/components": "7.0.0-beta.59", - "@storybook/core-common": "7.0.0-beta.59", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/node-logger": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/theming": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/blocks": "7.0.0-rc.3", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/components": "7.0.0-rc.3", + "@storybook/core-common": "7.0.0-rc.3", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/node-logger": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/theming": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "lodash": "^4.17.21", "ts-dedent": "^2.0.0" }, @@ -2956,28 +2956,28 @@ } }, "node_modules/@storybook/addon-docs": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.0.0-beta.59.tgz", - "integrity": "sha512-oipJtO/O2+/0sC5n9r+9crHnz+f0XEAMkYN/O/H5B0Z+N6T3uP4xnKTFdowpBUcEP6UaRL2oNYHNywzILdQYlA==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.0.0-rc.3.tgz", + "integrity": "sha512-UPy+o7IBly2TgCQ7hviaExq++KQSPS7/+/8iLUdv81mtRm3hMBMARmom+wjXfciGHp1re1bazQQYoDsOcorDhA==", "dev": true, "dependencies": { "@babel/core": "^7.20.2", "@babel/plugin-transform-react-jsx": "^7.19.0", "@jest/transform": "^29.3.1", "@mdx-js/react": "^2.1.5", - "@storybook/blocks": "7.0.0-beta.59", - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/components": "7.0.0-beta.59", - "@storybook/csf-plugin": "7.0.0-beta.59", - "@storybook/csf-tools": "7.0.0-beta.59", + "@storybook/blocks": "7.0.0-rc.3", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/components": "7.0.0-rc.3", + "@storybook/csf-plugin": "7.0.0-rc.3", + "@storybook/csf-tools": "7.0.0-rc.3", "@storybook/global": "^5.0.0", "@storybook/mdx2-csf": "next", - "@storybook/node-logger": "7.0.0-beta.59", - "@storybook/postinstall": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/react-dom-shim": "7.0.0-beta.59", - "@storybook/theming": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/node-logger": "7.0.0-rc.3", + "@storybook/postinstall": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/react-dom-shim": "7.0.0-rc.3", + "@storybook/theming": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "fs-extra": "^11.1.0", "remark-external-links": "^8.0.0", "remark-slug": "^6.0.0", @@ -2999,24 +2999,24 @@ } }, "node_modules/@storybook/addon-essentials": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.0.0-beta.59.tgz", - "integrity": "sha512-yVGQR8HT4OOZ2lMaRK4KsB6sahzIRvspwkwAEyk/tRm4NZ6KUxv05y1cMFlbMJ/JUX/tN5TBOwMIvumbUu/J+w==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.0.0-rc.3.tgz", + "integrity": "sha512-RLA1RgjwuDsRKp2QjBAx2XsgTZ+Dura2k8xCTyBLf0yxnleC8hiAxLwTJSSdDEUuiXxWsBbu0vhHzYnCCVTDnw==", "dev": true, "dependencies": { - "@storybook/addon-actions": "7.0.0-beta.59", - "@storybook/addon-backgrounds": "7.0.0-beta.59", - "@storybook/addon-controls": "7.0.0-beta.59", - "@storybook/addon-docs": "7.0.0-beta.59", - "@storybook/addon-highlight": "7.0.0-beta.59", - "@storybook/addon-measure": "7.0.0-beta.59", - "@storybook/addon-outline": "7.0.0-beta.59", - "@storybook/addon-toolbars": "7.0.0-beta.59", - "@storybook/addon-viewport": "7.0.0-beta.59", - "@storybook/core-common": "7.0.0-beta.59", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/node-logger": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", + "@storybook/addon-actions": "7.0.0-rc.3", + "@storybook/addon-backgrounds": "7.0.0-rc.3", + "@storybook/addon-controls": "7.0.0-rc.3", + "@storybook/addon-docs": "7.0.0-rc.3", + "@storybook/addon-highlight": "7.0.0-rc.3", + "@storybook/addon-measure": "7.0.0-rc.3", + "@storybook/addon-outline": "7.0.0-rc.3", + "@storybook/addon-toolbars": "7.0.0-rc.3", + "@storybook/addon-viewport": "7.0.0-rc.3", + "@storybook/core-common": "7.0.0-rc.3", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/node-logger": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", "ts-dedent": "^2.0.0" }, "funding": { @@ -3029,14 +3029,14 @@ } }, "node_modules/@storybook/addon-highlight": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.0.0-beta.59.tgz", - "integrity": "sha512-JY3nChLZCWtAzjOUnztbPQzaXA2CKHi2bB0xfdgMLeWLN5bhYNpcmwMyAdu34vy6MYOHRlZutkifksUMUI2nDg==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.0.0-rc.3.tgz", + "integrity": "sha512-MeFIKfDpFrF33TPdl2ko2rie485AhfG2n0MFXA73L8Yzj5JPV+LVNa5eIKUUFyOMUGSkVjfFS6n63F08eqHbCw==", "dev": true, "dependencies": { - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/global": "^5.0.0", - "@storybook/preview-api": "7.0.0-beta.59" + "@storybook/preview-api": "7.0.0-rc.3" }, "funding": { "type": "opencollective", @@ -3044,19 +3044,19 @@ } }, "node_modules/@storybook/addon-links": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.0.0-beta.59.tgz", - "integrity": "sha512-9nDi8Zvy3mTBNTDIuZfIz6OevK2iCcUUOSspKn/1rJV+nMZ5xYtrWUGnW9P+z7WqOJ6CfXLIg4/sw97WLoJVyA==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.0.0-rc.3.tgz", + "integrity": "sha512-K2PMxVooGAgb8hCEU2oGUMzKjPLEPACH8NcRLs/fz9PKadepmijY0hBDC50SGkZd2HWSxXxyt6d5WaXTxhP8aw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/csf": "next", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/router": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/router": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "prop-types": "^15.7.2", "ts-dedent": "^2.0.0" }, @@ -3078,18 +3078,18 @@ } }, "node_modules/@storybook/addon-measure": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.0.0-beta.59.tgz", - "integrity": "sha512-iCGVzoGFJUj2oVqe+W5itKTZ9d+fIDdCuHBYB6I3KTuwJq9BEO9JivoIJScghADO9gaq20fVb5Hf+5IWb0riAA==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.0.0-rc.3.tgz", + "integrity": "sha512-N0HjObHjktlgWvOQcOqyC6/vFXERHzH7aP8L1RRrSnz+mP0XDO+62eBZunlnDGu4uAECH+AV/7LO+bmTMohulg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/components": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/components": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59" + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3" }, "funding": { "type": "opencollective", @@ -3109,18 +3109,18 @@ } }, "node_modules/@storybook/addon-outline": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.0.0-beta.59.tgz", - "integrity": "sha512-7GeLPyD+e4MNlMiLqa1GstvTQOqBeWDXClV+1QUa9dEbjqpe6SDLNWx0HoBvRFzW6/qtuutmxiNRJmBtvCVaWA==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.0.0-rc.3.tgz", + "integrity": "sha512-SocPRmzzu2wR3SiqMsPskfFumOd0Ph8MUTeJ2cwnaonqqHjjqxaEaFYio8AGmGaHLpY8PKtW0s75jU0oDh9Ezg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/components": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/components": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "ts-dedent": "^2.0.0" }, "funding": { @@ -3141,16 +3141,16 @@ } }, "node_modules/@storybook/addon-toolbars": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.0.0-beta.59.tgz", - "integrity": "sha512-1MJIAXbBI/E93c0z7Sm66xGNpzm3OQbfK+jShgdKHYAwWkv1HMGDAwIJdA4Z5bf4tuU2vri4SSdi4GnQlXy4EA==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.0.0-rc.3.tgz", + "integrity": "sha512-qnvMWZAa3ELRNiVjj1sy0dJb2GzE5fga9SbsbVQQT2zBvou2e8XbiPRw0WHdwUU2Zj9t9/PVjz2+av7P8B+Cqg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/components": "7.0.0-beta.59", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/theming": "7.0.0-beta.59" + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/components": "7.0.0-rc.3", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/theming": "7.0.0-rc.3" }, "funding": { "type": "opencollective", @@ -3170,18 +3170,18 @@ } }, "node_modules/@storybook/addon-viewport": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.0.0-beta.59.tgz", - "integrity": "sha512-2cqs7+KKERWRpIE6Omfr/JaLcz8apu0JIJxL+pMUEQcYBl7noPNgXSOyDHVJYWcNM6cQTb8LkEKlZ9bJ5ut40w==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.0.0-rc.3.tgz", + "integrity": "sha512-GXBi7f4WNeM4yvKXKYNAMLDHauTOcLpimzf1wtyVapBLpwzcJHBaJTCHQ02yIcm6mU2TFbKXMmzC1uBZcCa+5w==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/components": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/components": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/theming": "7.0.0-beta.59", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/theming": "7.0.0-rc.3", "memoizerific": "^1.11.3", "prop-types": "^15.7.2" }, @@ -3472,22 +3472,22 @@ } }, "node_modules/@storybook/blocks": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.0.0-beta.59.tgz", - "integrity": "sha512-3srAVSWxP07gGQuB309T2gqd7yP9b4rkMwMiIal3o7jsxYFHmZjRONJa52XAT2CQkqjJx1NoMdNlHNMnMzRehg==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.0.0-rc.3.tgz", + "integrity": "sha512-mh4LQk2f/Q9n7Sqo6t02CspHubXmSgDY4S5vF3dTgVBM/sD0OxkAY3Pv+HTsXH36lQHYYUft7U7OfhZapgS4ng==", "dev": true, "dependencies": { - "@storybook/channels": "7.0.0-beta.59", - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/components": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/channels": "7.0.0-rc.3", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/components": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/csf": "next", - "@storybook/docs-tools": "7.0.0-beta.59", + "@storybook/docs-tools": "7.0.0-rc.3", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/theming": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/theming": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "@types/lodash": "^4.14.167", "color-convert": "^2.0.1", "dequal": "^2.0.2", @@ -3510,15 +3510,15 @@ } }, "node_modules/@storybook/builder-manager": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.0.0-beta.59.tgz", - "integrity": "sha512-cWm5eCGZraW9fAnL0Cp80M5QYMXeWZ538k9WWq2uG1FYXLCnEl6J7X4acJ4d2hYTF+XvwEMeWB5i4z435kgi/Q==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.0.0-rc.3.tgz", + "integrity": "sha512-aScwYA9MWtqgiD39SkcwUlrR9RFbngv7jPoOaVMdXuMgNabMNz9417L9bCwSPwgO4XZ5a/nSEbGNLfOHfBemsw==", "dev": true, "dependencies": { "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/core-common": "7.0.0-beta.59", - "@storybook/manager": "7.0.0-beta.59", - "@storybook/node-logger": "7.0.0-beta.59", + "@storybook/core-common": "7.0.0-rc.3", + "@storybook/manager": "7.0.0-rc.3", + "@storybook/node-logger": "7.0.0-rc.3", "@types/ejs": "^3.1.1", "@types/find-cache-dir": "^3.2.1", "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", @@ -3539,21 +3539,21 @@ } }, "node_modules/@storybook/builder-vite": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.0.0-beta.59.tgz", - "integrity": "sha512-s7FbS/RisUrkmpSoY++FjUxYR3jXsCM5HE7rWxBkBFVwfURq6LcVC6ZZy9rdcp9NyvoW2ne2LqQP8sg+S2o00Q==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.0.0-rc.3.tgz", + "integrity": "sha512-v2d04PWfcITD7zI68d7XbCbOd+5vl3gIMEX5Xdsmuw3WcaqYxvDSE8GhL6zsBhrUyygV/8xhSaaxyfv8ImM0+w==", "dev": true, "dependencies": { - "@storybook/channel-postmessage": "7.0.0-beta.59", - "@storybook/channel-websocket": "7.0.0-beta.59", - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/core-common": "7.0.0-beta.59", - "@storybook/csf-plugin": "7.0.0-beta.59", + "@storybook/channel-postmessage": "7.0.0-rc.3", + "@storybook/channel-websocket": "7.0.0-rc.3", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/core-common": "7.0.0-rc.3", + "@storybook/csf-plugin": "7.0.0-rc.3", "@storybook/mdx2-csf": "next", - "@storybook/node-logger": "7.0.0-beta.59", - "@storybook/preview": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/node-logger": "7.0.0-rc.3", + "@storybook/preview": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "browser-assert": "^1.2.1", "es-module-lexer": "^0.9.3", "express": "^4.17.3", @@ -3591,14 +3591,14 @@ } }, "node_modules/@storybook/channel-postmessage": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.0-beta.59.tgz", - "integrity": "sha512-TVvUBJpaxfmF9ap4lbA76ez4EJUM8BO4tpXn2w4tcs0HZUUFmCaltcUVk+KJLE2ZcQpDFNhXtR9nk1DPJtHy9A==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.0-rc.3.tgz", + "integrity": "sha512-1uptuCjA4vAvvoxNoIJPTIpSARzJnLU7eahRhTPwELBnCH0ObqvgInge0cvbYsaTRDNV90oBbEKlxLf1Zb1BhQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.0.0-beta.59", - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/channels": "7.0.0-rc.3", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.0.3" @@ -3609,13 +3609,13 @@ } }, "node_modules/@storybook/channel-websocket": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-7.0.0-beta.59.tgz", - "integrity": "sha512-C7a1vF6neYqyh7pqSf7JUtNntpF9eOzgcDVJAnjrP+nfqcdU3Av8pwO90K3M9qL2sP+V/oDuM/jA8fysxTs2BA==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-7.0.0-rc.3.tgz", + "integrity": "sha512-706jopde+OZZkqsmrRuwd9utusqiKianiF8cvjAxrxogSx8LwHk8jxrEKHxHiZUEWDS3JxJoIYSV8gxH9hcjsA==", "dev": true, "dependencies": { - "@storybook/channels": "7.0.0-beta.59", - "@storybook/client-logger": "7.0.0-beta.59", + "@storybook/channels": "7.0.0-rc.3", + "@storybook/client-logger": "7.0.0-rc.3", "@storybook/global": "^5.0.0", "telejson": "^7.0.3" }, @@ -3625,9 +3625,9 @@ } }, "node_modules/@storybook/channels": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.0-beta.59.tgz", - "integrity": "sha512-dd0kHUfIM8oolqMq2R9/YcN5+NPq9hQz8upnAsiJZ++TrJyarBUAGaR5njC8gVhFKouxyUZsltVZ3X/9T1BIsg==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.0-rc.3.tgz", + "integrity": "sha512-jaODIck+um16Fn2k1vwHK9RNk2J8hLVyzLSkoGM40TsMF5nichwI3rA6225pLk015itJbhCAi/RhaMFBI+ZtsA==", "dev": true, "funding": { "type": "opencollective", @@ -3635,21 +3635,21 @@ } }, "node_modules/@storybook/cli": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.0.0-beta.59.tgz", - "integrity": "sha512-jiZhBh5F0TJm8WZlojeaVC8GgGort9ppHeX+mXip5KGCyN3iewa/hdCt1CdkdQB/mzG4NPoEaP3QlyDDzfBFhQ==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.0.0-rc.3.tgz", + "integrity": "sha512-g1nWHLI1fiDK2dnLpmbhbrm6ZaAwuZkUgEGtlEQCPTHWVRZj2fJT0y5zjgBIhFpdkB/X8MZzgVxqhTJF0uX39Q==", "dev": true, "dependencies": { "@babel/core": "^7.20.2", "@babel/preset-env": "^7.20.2", - "@ndelangen/get-tarball": "^3.0.3", - "@storybook/codemod": "7.0.0-beta.59", - "@storybook/core-common": "7.0.0-beta.59", - "@storybook/core-server": "7.0.0-beta.59", - "@storybook/csf-tools": "7.0.0-beta.59", - "@storybook/node-logger": "7.0.0-beta.59", - "@storybook/telemetry": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@ndelangen/get-tarball": "^3.0.7", + "@storybook/codemod": "7.0.0-rc.3", + "@storybook/core-common": "7.0.0-rc.3", + "@storybook/core-server": "7.0.0-rc.3", + "@storybook/csf-tools": "7.0.0-rc.3", + "@storybook/node-logger": "7.0.0-rc.3", + "@storybook/telemetry": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "@types/semver": "^7.3.4", "boxen": "^5.1.2", "chalk": "^4.1.0", @@ -3909,9 +3909,9 @@ "dev": true }, "node_modules/@storybook/client-logger": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.0-beta.59.tgz", - "integrity": "sha512-xEl+RNAsMZ+AvdatVd8GVzIvH6Dm4kaIXs3iyCRr4HXIdAxNB53tReqDDdzsK4LamMf5003Mlo4Szcb4QTkskQ==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.0-rc.3.tgz", + "integrity": "sha512-cC7lq+S4n5fFooDCyefgTAOfipadiZskNuzsQF7drE9nQLZ8GflLdmTKK//5NQUHKPzF7r+4Q5DAK4I3nqIkxA==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -3922,18 +3922,18 @@ } }, "node_modules/@storybook/codemod": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.0.0-beta.59.tgz", - "integrity": "sha512-G8hR7ooZMkS0gpIP+2IutGaTu18Mb6wcjv5D6NidRW3R/t6PBS53tTsd0RYLCmEnmKgOn4gibBUgQtM1dtG0jQ==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.0.0-rc.3.tgz", + "integrity": "sha512-P965X5g4WIBfrYMLYPQIvwp9wfIf5bnUIVgwjeGUDLDLIst6RXmHGik9MHLy2Ic/MXTsf/kwK5qY9pj95t8DZg==", "dev": true, "dependencies": { "@babel/core": "~7.21.0", "@babel/preset-env": "~7.20.2", "@babel/types": "~7.21.2", "@storybook/csf": "next", - "@storybook/csf-tools": "7.0.0-beta.59", - "@storybook/node-logger": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/csf-tools": "7.0.0-rc.3", + "@storybook/node-logger": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "cross-spawn": "^7.0.3", "globby": "^11.0.2", "jscodeshift": "^0.14.0", @@ -3947,16 +3947,16 @@ } }, "node_modules/@storybook/components": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.0.0-beta.59.tgz", - "integrity": "sha512-Cmfs2B0YgT7pqRJL6EhI6ipIQ2Ma72IVrFpM7gD6X8H81u8BjtsFFpfZnUUtkN9CbIsk8uQ52efv8aw38AzK9g==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.0.0-rc.3.tgz", + "integrity": "sha512-PeQFr2hZvLnxLswKihw1Ro5wCqmNZeSE4q+tFdifhLVIqP/OwHG+ShiLCHQ1aEa0Z3Ub+80m7uPzg69+y9m+bQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", "@storybook/csf": "next", "@storybook/global": "^5.0.0", - "@storybook/theming": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/theming": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "memoizerific": "^1.11.3", "use-resize-observer": "^9.1.0", "util-deprecate": "^1.0.2" @@ -3971,13 +3971,13 @@ } }, "node_modules/@storybook/core-client": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.0.0-beta.59.tgz", - "integrity": "sha512-M/APRzOEyhjkhVXLHVs3lMkNI+MC11PF6Z2M8hXSlv+xqHSnC2bHGwoay5KSjLY29yEZkxuauCYwvOywzTdJQw==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.0.0-rc.3.tgz", + "integrity": "sha512-epUiHzFQNoEr5PYq9069SliQzHl5fVQj94aWdGZWCQPGldxiFtCNB7o32NzwwIVzXOKPzU38qg2B4738jt/1XQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59" + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3" }, "funding": { "type": "opencollective", @@ -3985,13 +3985,13 @@ } }, "node_modules/@storybook/core-common": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.0.0-beta.59.tgz", - "integrity": "sha512-oHj+QisjtPhAt4uvbBf8bdVLifsKyu2HkwTwy++eCnMGCEb/L370TFQyPqL4olJY7vVNHx2aFduUTP9qoUawrQ==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.0.0-rc.3.tgz", + "integrity": "sha512-uUIs14+35ubRcpYwuX0OHW05tSDC5jeNEY8gv2EjcexBLeNozfGV4Tf5/ncG8glVbp8jGUlu2S3XJZoHKHDSqQ==", "dev": true, "dependencies": { - "@storybook/node-logger": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/node-logger": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "@types/node": "^16.0.0", "@types/pretty-hrtime": "^1.0.0", "chalk": "^4.1.0", @@ -4017,9 +4017,9 @@ } }, "node_modules/@storybook/core-common/node_modules/@types/node": { - "version": "16.18.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.14.tgz", - "integrity": "sha512-wvzClDGQXOCVNU4APPopC2KtMYukaF1MN/W3xAmslx22Z4/IF1/izDMekuyoUlwfnDHYCIZGaj7jMwnJKBTxKw==", + "version": "16.18.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.16.tgz", + "integrity": "sha512-ZOzvDRWp8dCVBmgnkIqYCArgdFOO9YzocZp8Ra25N/RStKiWvMOXHMz+GjSeVNe5TstaTmTWPucGJkDw0XXJWA==", "dev": true }, "node_modules/@storybook/core-common/node_modules/ansi-styles": { @@ -4075,9 +4075,9 @@ } }, "node_modules/@storybook/core-events": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.0-beta.59.tgz", - "integrity": "sha512-kmCui9J/u70m4dMaj8ZfqXwgbdPr5stYBTmwdB3sbiFDH4YJpI1QC4pYQdN7vQLMuLF6IDsVhNlJro/aeuwBEg==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.0-rc.3.tgz", + "integrity": "sha512-EBihNmxxiIJbPt6OhCTXFPl2T/9OXNVKtsy8hchBNEzp+UJGyeHx+t9K6tRvbcmt5TG/y7C7ZsYx9U28JTwNkg==", "dev": true, "funding": { "type": "opencollective", @@ -4085,25 +4085,25 @@ } }, "node_modules/@storybook/core-server": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.0.0-beta.59.tgz", - "integrity": "sha512-OdbrZEnXmWy4ie6hNypEWQpFci9NciAavS6ggN1ga06OD1b2L3rrbFo+5nNKv9tHqlTDvyL2s1Da4JTYtVdMLg==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.0.0-rc.3.tgz", + "integrity": "sha512-211514C7w8hvu/bLP97KdF7TM8FpcchgDAhldODDvKFyxFTHMcQFj3ABlptsWFO6JxZsy32hG8qi6phFUtceQA==", "dev": true, "dependencies": { "@aw-web-design/x-default-browser": "1.4.88", "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-manager": "7.0.0-beta.59", - "@storybook/core-common": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/builder-manager": "7.0.0-rc.3", + "@storybook/core-common": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/csf": "next", - "@storybook/csf-tools": "7.0.0-beta.59", + "@storybook/csf-tools": "7.0.0-rc.3", "@storybook/docs-mdx": "next", "@storybook/global": "^5.0.0", - "@storybook/manager": "7.0.0-beta.59", - "@storybook/node-logger": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/telemetry": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/manager": "7.0.0-rc.3", + "@storybook/node-logger": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/telemetry": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "@types/detect-port": "^1.3.0", "@types/node": "^16.0.0", "@types/node-fetch": "^2.5.7", @@ -4140,9 +4140,9 @@ } }, "node_modules/@storybook/core-server/node_modules/@types/node": { - "version": "16.18.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.14.tgz", - "integrity": "sha512-wvzClDGQXOCVNU4APPopC2KtMYukaF1MN/W3xAmslx22Z4/IF1/izDMekuyoUlwfnDHYCIZGaj7jMwnJKBTxKw==", + "version": "16.18.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.16.tgz", + "integrity": "sha512-ZOzvDRWp8dCVBmgnkIqYCArgdFOO9YzocZp8Ra25N/RStKiWvMOXHMz+GjSeVNe5TstaTmTWPucGJkDw0XXJWA==", "dev": true }, "node_modules/@storybook/core-server/node_modules/ansi-styles": { @@ -4240,12 +4240,12 @@ } }, "node_modules/@storybook/csf-plugin": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.0.0-beta.59.tgz", - "integrity": "sha512-+C5pWY1Bhr7vtDG7OI2wjKDKz1o7DFLiChG8M1hdX/o3TD97bh24GVmJW9GEXk+A+7rG7XuxHcu2x0piq3Fs8g==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.0.0-rc.3.tgz", + "integrity": "sha512-+r2m09o/5B846Q8ykDWjwPJSZXc3i4Z6vLc04SxIR/VJffF7K0Z/vFmTcPz8Qg5wFdfvy/HFqTLpaOJtVwWBdA==", "dev": true, "dependencies": { - "@storybook/csf-tools": "7.0.0-beta.59", + "@storybook/csf-tools": "7.0.0-rc.3", "unplugin": "^0.10.2" }, "funding": { @@ -4254,9 +4254,9 @@ } }, "node_modules/@storybook/csf-tools": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.0.0-beta.59.tgz", - "integrity": "sha512-b8wxDFKOFZS5CQUjmb+vToSERYmbpIkFSMv+7/jixfYdS1O6Z8z3mXxqm+XljkNrKhi6EID42D8RsxBNhg/8gg==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.0.0-rc.3.tgz", + "integrity": "sha512-I3QG2buAswIYVbYlstmZAamwLopW6daHj2+wrod+whTmeKShp0rbOrVkU0M3Hpj9CVzFM1/4YqCNOBkS2XTnsw==", "dev": true, "dependencies": { "@babel/generator": "~7.21.1", @@ -4264,7 +4264,7 @@ "@babel/traverse": "~7.21.2", "@babel/types": "~7.21.2", "@storybook/csf": "next", - "@storybook/types": "7.0.0-beta.59", + "@storybook/types": "7.0.0-rc.3", "fs-extra": "^11.1.0", "recast": "^0.23.1", "ts-dedent": "^2.0.0" @@ -4281,15 +4281,15 @@ "dev": true }, "node_modules/@storybook/docs-tools": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.0.0-beta.59.tgz", - "integrity": "sha512-UatE0EFvPy2dsSa7zqcsQ5mUmGopKE+/2RyQkCE+tTqY38KssyOuHSrg0mc6dUvBZngD3AWKIOuNZlLB1Eg21w==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.0.0-rc.3.tgz", + "integrity": "sha512-1uGIMq0+t8AUJyj0jkta7Imr3vFLkX8oRXhX5zi7znjWMhgeXKskEFujvCcz7eI1NIU9x2WvFwbtSzWDpdC/0g==", "dev": true, "dependencies": { "@babel/core": "^7.12.10", - "@storybook/core-common": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/core-common": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "@types/doctrine": "^0.0.3", "doctrine": "^3.0.0", "lodash": "^4.17.21" @@ -4306,9 +4306,9 @@ "dev": true }, "node_modules/@storybook/manager": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.0.0-beta.59.tgz", - "integrity": "sha512-xwSuk/izrjUn0hGzs6uiu+YfMZgvnyzGIrEWqPEwQWomW2oVyY/pdtCEsR/9Yv6smlLk4f6xh++1qG26XgceCg==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.0.0-rc.3.tgz", + "integrity": "sha512-8Q/vpHkvWQ/fZHRPFOgGC4Qhgpmafe9GV2QKk3yRA/p9zcW4UzP9fbL4qw6tq+5GLM/kFKArBu28ZA7L7sKB9A==", "dev": true, "funding": { "type": "opencollective", @@ -4316,19 +4316,19 @@ } }, "node_modules/@storybook/manager-api": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.0.0-beta.59.tgz", - "integrity": "sha512-mNbqUNEzLWacxjACnXOfufmcMB70z/z5XDjoP1zYc6QDrnCaLF/L7FwMhTo1J2/6wvQXcvYj25RiCZHm75gMXQ==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.0.0-rc.3.tgz", + "integrity": "sha512-Pa+LabGYakPd9RuS8G7tCp3hPjZwGZL95Dj+yef0bM9WmYBimNjaUsqVJOGttuE4TLXjUIU9+58YImN7QrGfbQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.0.0-beta.59", - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/channels": "7.0.0-rc.3", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/csf": "next", "@storybook/global": "^5.0.0", - "@storybook/router": "7.0.0-beta.59", - "@storybook/theming": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/router": "7.0.0-rc.3", + "@storybook/theming": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -4386,9 +4386,9 @@ "dev": true }, "node_modules/@storybook/node-logger": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.0.0-beta.59.tgz", - "integrity": "sha512-DJOtqed/iL/Mpbci3ZwDmZwvnheqZzSOmrk2YsKmJagnQzS0A9+ZZg7tu/eFuvBnILmhVDzFBOloD8hXRSOC7w==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.0.0-rc.3.tgz", + "integrity": "sha512-ViWIJUdFUTrFtcoO88T3h55ryjl73aMNyn8vPvIgejJoJfYMTB5ErI4zLquN23HNc+H9AKKm/qMFFSf9xjGORQ==", "dev": true, "dependencies": { "@types/npmlog": "^4.1.2", @@ -4454,9 +4454,9 @@ } }, "node_modules/@storybook/postinstall": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.0.0-beta.59.tgz", - "integrity": "sha512-/SD0kacKKkvhr2qLQlPrJY+pYyP819RfwZDL4QY56/YpOwzEwWNhZDksQDuJTNCu8tr2XTLyqlfm0wFwi/DaGg==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.0.0-rc.3.tgz", + "integrity": "sha512-kOCJjixFwdnZxR6K45XR+6Q4UBzOLdabzh3aednQ/piiqj7ZdldaF75ZfoDhKPK4cjrd5AGU6/OWbsJQ+DLVMg==", "dev": true, "funding": { "type": "opencollective", @@ -4464,9 +4464,9 @@ } }, "node_modules/@storybook/preview": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.0.0-beta.59.tgz", - "integrity": "sha512-4ve/fELgVFFShX7P8QfEiW5BUZ2oZxBi7AKEPJ6gR7ZXjAmuKE7Potn1WWKH2T9uRUZh8nM6v+Waf0WU5q7bww==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.0.0-rc.3.tgz", + "integrity": "sha512-7FeJjOV2pNVesdNljzy1DvzhhShZ/pjQOmhFs4GXBXTJCPNQP5iZTSR6b3ehN8L96yVPT5JsdjX4MiyGw2QPnQ==", "dev": true, "funding": { "type": "opencollective", @@ -4474,18 +4474,18 @@ } }, "node_modules/@storybook/preview-api": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.0-beta.59.tgz", - "integrity": "sha512-ZRTStJ57wi/ovN0Y1OXp5Ap9WJ5KDDNfmk8cCVgyyPZ1QrwqnrTkHwbLl+DlmFYMJBAiF0s2Rfvcm70hQfJK8Q==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.0-rc.3.tgz", + "integrity": "sha512-iIifbFRmrFIlLzApTZyCWmI3JNt2IxfM8Dm4rNlMJBifjtgHfpxA+DsQI8mW8UGM64a8N1wF7azkN6cnRz6v2w==", "dev": true, "dependencies": { - "@storybook/channel-postmessage": "7.0.0-beta.59", - "@storybook/channels": "7.0.0-beta.59", - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/channel-postmessage": "7.0.0-rc.3", + "@storybook/channels": "7.0.0-rc.3", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/csf": "next", "@storybook/global": "^5.0.0", - "@storybook/types": "7.0.0-beta.59", + "@storybook/types": "7.0.0-rc.3", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -4502,9 +4502,9 @@ } }, "node_modules/@storybook/react-dom-shim": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.0.0-beta.59.tgz", - "integrity": "sha512-YI8DiC7kMutDx2H8q/jVNotjTAv/W74a9LzYlPwn67yWnyj4rVNFfCTCsd/ji5rLDe3SZZc/b3sN7TOumCdBQQ==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.0.0-rc.3.tgz", + "integrity": "sha512-3rQsOPwNlHyV93311GaGP28BFobEaNfw+djxDBxocNrL07xvY3u/XE6bShKOJ6R28ATaGwXUxmj2Cwtd2GxASg==", "dev": true, "funding": { "type": "opencollective", @@ -4516,12 +4516,12 @@ } }, "node_modules/@storybook/router": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.0.0-beta.59.tgz", - "integrity": "sha512-WBX6d5XzElzd0bUHaV5RxlTbynhaJOU1vMB13EgAMgjN0orqOJcTxou/EtjsqqxxnXGwDCNhkjZgY3wTAhhN4g==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.0.0-rc.3.tgz", + "integrity": "sha512-D3Uoz1WRFWH3QUjyrDObwCVRYXdSGZGpCN2eh6gjlKC9VQ9ohaGerEdXSsYnAj2lovhfze8oXp+PS1VKJTlpgg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -4603,13 +4603,13 @@ } }, "node_modules/@storybook/telemetry": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.0.0-beta.59.tgz", - "integrity": "sha512-63ynNAYq8/SV7VUzH90rrLy//Kj5F9ALiF2VFoqpQb8PPeX8f0UYZMyCyPnnQPSZju36xtXnx46rNUYkrV42Dw==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.0.0-rc.3.tgz", + "integrity": "sha512-0vPVA1aTWCA6jr3iSOPCu8x3zpNUsyxYN30B4b6d3o2iO6YU/CZdm8rxzInv+bKkz2fHFDzCDsfZTgQ5VEggEw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/core-common": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/core-common": "7.0.0-rc.3", "chalk": "^4.1.0", "detect-package-manager": "^2.0.1", "fetch-retry": "^5.0.2", @@ -4676,13 +4676,13 @@ } }, "node_modules/@storybook/theming": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.0-beta.59.tgz", - "integrity": "sha512-LBSZWZq/b4kUC9QsknUlOvahQ1aAKRjGnZ8GRbsyTIXy/8EvMx4YTGPOjbnS+3H5DIhm+YwG/OM8efJX75Yc1A==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.0-rc.3.tgz", + "integrity": "sha512-sVt8Egv9CmeDnTJYPsyvlvHE+GX8hAczc1SvuoLeXs/1gsEsnVn6ovCFGSV0Rc7sAr5oSv794/pFUsboU8tYqg==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -4696,12 +4696,12 @@ } }, "node_modules/@storybook/types": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.0-beta.59.tgz", - "integrity": "sha512-vDhf84KeE8zUmy1LGZLdhrrLCLTTh2Fd8ddSJs8M94PfiToPcawf0KMzaE8yPY9JHl0CtubvjPVDX6xw4v0oAw==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.0-rc.3.tgz", + "integrity": "sha512-2xxgs4zL1QZUdut+Zt5sQdgNCUP0n/y5CRbvEpDwkcuE4KWbfJYixJNumioZ6UwK17ZE9gf4ZxVgttvexmW8eg==", "dev": true, "dependencies": { - "@storybook/channels": "7.0.0-beta.59", + "@storybook/channels": "7.0.0-rc.3", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "^2.0.0" @@ -4712,18 +4712,18 @@ } }, "node_modules/@storybook/web-components": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.0.0-beta.59.tgz", - "integrity": "sha512-xbo5pbV9OC2gA75s7sN8TowEusVKiklpH8yBfvWFFouhNGjJ7XTPWN7Z42gw6xxlaqJNfnT59eBLV/DMbO6qmQ==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.0.0-rc.3.tgz", + "integrity": "sha512-enG/VoXu7i5r39Ao4qg6a4Q/aPX5LYkkFaj955BLkUJXW1ZANwjRqo6JSquC4tW8Dm1FYN8sJBAzO6M8YRlbnA==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/core-client": "7.0.0-beta.59", - "@storybook/docs-tools": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/core-client": "7.0.0-rc.3", + "@storybook/docs-tools": "7.0.0-rc.3", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "ts-dedent": "^2.0.0" }, "engines": { @@ -4738,15 +4738,15 @@ } }, "node_modules/@storybook/web-components-vite": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.0.0-beta.59.tgz", - "integrity": "sha512-G7GHjYv5FSn1C8zWVfrOhM4h9NlnxHwv2HMKXXXSlOfUtDsTJm05OV7N0IDqnPdbEduqJnb4WCB0KdQwOLKrCg==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.0.0-rc.3.tgz", + "integrity": "sha512-A/+tm879pmD9UwWDJdYimwuIaSQPYyf2FSwL/+zIJ6ZS63LFimkIkt/C7hWD6pYNzk1w36VESfRhEeP3Hu4VNA==", "dev": true, "dependencies": { - "@storybook/builder-vite": "7.0.0-beta.59", - "@storybook/core-server": "7.0.0-beta.59", - "@storybook/node-logger": "7.0.0-beta.59", - "@storybook/web-components": "7.0.0-beta.59", + "@storybook/builder-vite": "7.0.0-rc.3", + "@storybook/core-server": "7.0.0-rc.3", + "@storybook/node-logger": "7.0.0-rc.3", + "@storybook/web-components": "7.0.0-rc.3", "magic-string": "^0.27.0" }, "engines": { @@ -8506,9 +8506,9 @@ } }, "node_modules/core-js-compat": { - "version": "3.29.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.0.tgz", - "integrity": "sha512-ScMn3uZNAFhK2DGoEfErguoiAHhV2Ju+oJo/jK08p7B3f3UhocUrCCkTvnZaiS+edl5nlIoiBXKcwMc6elv4KQ==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.1.tgz", + "integrity": "sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA==", "dev": true, "dependencies": { "browserslist": "^4.21.5" @@ -9022,9 +9022,9 @@ "dev": true }, "node_modules/ejs": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", - "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", "dev": true, "dependencies": { "jake": "^10.8.5" @@ -10471,9 +10471,9 @@ "dev": true }, "node_modules/flow-parser": { - "version": "0.200.1", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.200.1.tgz", - "integrity": "sha512-N6gxgo0iQx0G2m3aJjg3RLxNLUG3EBYgBN/xDDPGQXSjvqNkTdEd2t1myE36Xi7GndZQWngDP7jf0GvxdL6pRg==", + "version": "0.201.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.201.0.tgz", + "integrity": "sha512-G4oeDNpNGyIrweF9EnoHatncAihMT0tQgV6NMdyM5I7fhrz9Pr13PJ2KLQ673O4wj9KooTdBpeeYHdDNAQoyyw==", "dev": true, "engines": { "node": ">=0.4.0" @@ -12234,20 +12234,20 @@ } }, "node_modules/jest-haste-map": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.4.3.tgz", - "integrity": "sha512-eZIgAS8tvm5IZMtKlR8Y+feEOMfo2pSQkmNbufdbMzMSn9nitgGxF1waM/+LbryO3OkMcKS98SUb+j/cQxp/vQ==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", + "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", "dev": true, "dependencies": { - "@jest/types": "^29.4.3", + "@jest/types": "^29.5.0", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", "jest-regex-util": "^29.4.3", - "jest-util": "^29.4.3", - "jest-worker": "^29.4.3", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", "micromatch": "^4.0.4", "walker": "^1.0.8" }, @@ -12268,12 +12268,12 @@ } }, "node_modules/jest-util": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.4.3.tgz", - "integrity": "sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", + "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", "dev": true, "dependencies": { - "@jest/types": "^29.4.3", + "@jest/types": "^29.5.0", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -12337,13 +12337,13 @@ } }, "node_modules/jest-worker": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.4.3.tgz", - "integrity": "sha512-GLHN/GTAAMEy5BFdvpUfzr9Dr80zQqBrh0fz1mtRMe05hqP45+HfQltu7oTBfduD0UeZs09d+maFtFYAXFWvAA==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", + "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", "dev": true, "dependencies": { "@types/node": "*", - "jest-util": "^29.4.3", + "jest-util": "^29.5.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -13390,9 +13390,9 @@ } }, "node_modules/minipass": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", - "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", + "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", "dev": true, "engines": { "node": ">=8" @@ -15401,9 +15401,9 @@ } }, "node_modules/regexpu-core": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.1.tgz", - "integrity": "sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "dependencies": { "@babel/regjsgen": "^0.8.0", @@ -16363,12 +16363,12 @@ "dev": true }, "node_modules/storybook": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.0.0-beta.59.tgz", - "integrity": "sha512-YqG++MuzR1b6caFqVPZAHJKaBml0LL9OfhLtk+dCfsVNBAF5ZHuzXw4Okl+HTb6Fzup/LNmca3W1fM/iyDZ91w==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.0.0-rc.3.tgz", + "integrity": "sha512-1EFr7o7dcgFKsI6TBqvxYEKGPzKvJ8qzCl3BM/1kZP5BmWqQPbanOQLVkTb4zDb5e+Q+ibDNH5k8D1lQFdsHcg==", "dev": true, "dependencies": { - "@storybook/cli": "7.0.0-beta.59" + "@storybook/cli": "7.0.0-rc.3" }, "bin": { "sb": "index.js", @@ -19589,22 +19589,22 @@ } }, "@jest/transform": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.4.3.tgz", - "integrity": "sha512-8u0+fBGWolDshsFgPQJESkDa72da/EVwvL+II0trN2DR66wMwiQ9/CihaGfHdlLGFzbBZwMykFtxuwFdZqlKwg==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", + "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", "dev": true, "requires": { "@babel/core": "^7.11.6", - "@jest/types": "^29.4.3", + "@jest/types": "^29.5.0", "@jridgewell/trace-mapping": "^0.3.15", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.4.3", + "jest-haste-map": "^29.5.0", "jest-regex-util": "^29.4.3", - "jest-util": "^29.4.3", + "jest-util": "^29.5.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -19654,9 +19654,9 @@ } }, "@jest/types": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.4.3.tgz", - "integrity": "sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", + "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", "dev": true, "requires": { "@jest/schemas": "^29.4.3", @@ -20024,40 +20024,40 @@ "dev": true }, "@storybook/addon-a11y": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-7.0.0-beta.59.tgz", - "integrity": "sha512-rQLyNv/qmxjQD750MUO8YKZikVHtvYDD6IsJxrhO4xM0UUqaOeZC1JUeppNJKCwItyB3AyANcy6Cl8O0Cc/U3Q==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-7.0.0-rc.3.tgz", + "integrity": "sha512-V/wl19IzsOA0OkUofKKbL09Qj93ywRHW3Pjq3pOLRE178zCumWuBKxpr+dS4C1lNwecIU1ffp8408RSzZ4K5sA==", "dev": true, "requires": { - "@storybook/addon-highlight": "7.0.0-beta.59", - "@storybook/channels": "7.0.0-beta.59", - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/components": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/addon-highlight": "7.0.0-rc.3", + "@storybook/channels": "7.0.0-rc.3", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/components": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/theming": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/theming": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "axe-core": "^4.2.0", "lodash": "^4.17.21", "react-resize-detector": "^7.1.2" } }, "@storybook/addon-actions": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.0.0-beta.59.tgz", - "integrity": "sha512-yK4fZCkYG+/FppEw/a1eUFIiNEEmElzlo42TXn0DHywsZaBEMei5JCvqh1+KprUVJo20mGuTxLDMkRri4JHXYw==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.0.0-rc.3.tgz", + "integrity": "sha512-kyPuSN/PzBnW3w9D/KBEmMqfeGpBeY6Ha2VVPz3BBqcWSHfw0AbHFqvnqluubaHZl1VokE88QT6RxkdyBg33uw==", "dev": true, "requires": { - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/components": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/components": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/theming": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/theming": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "dequal": "^2.0.2", "lodash": "^4.17.21", "polished": "^4.2.2", @@ -20069,65 +20069,65 @@ } }, "@storybook/addon-backgrounds": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.0.0-beta.59.tgz", - "integrity": "sha512-eB30laoU/5uqk6Q6zYb6ckkkvxXCi6O/vf0kg5H8RzKOwHc+OccCqCNLSKltoKTD3OGzGj6T+dLSCdzRcQ3+PQ==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.0.0-rc.3.tgz", + "integrity": "sha512-6qIwuNwzLFdsLCjj5rO6TCaBvAGUYbrLpw2EQyKg5J/5GxqhMU/HsinCViok2VEn/z45vji9FI1W6bmo7t4LNQ==", "dev": true, "requires": { - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/components": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/components": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/theming": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/theming": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "memoizerific": "^1.11.3", "ts-dedent": "^2.0.0" } }, "@storybook/addon-controls": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.0.0-beta.59.tgz", - "integrity": "sha512-pSpIxKYLAcvgp5eOC44BEY4jIW5rjCSvqchieblflF4eScPy886gC1nPRV3oo7QRckiZT3HE5UZ96YK1U3Ahew==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.0.0-rc.3.tgz", + "integrity": "sha512-16E0AJ1+psFDbL6abOfLFg0zWhUQeJjcM3RKEzJjYZEBuKKL86LAvKhnlkyCUW3VlLN23V0akY6Gev81DR/BfA==", "dev": true, "requires": { - "@storybook/blocks": "7.0.0-beta.59", - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/components": "7.0.0-beta.59", - "@storybook/core-common": "7.0.0-beta.59", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/node-logger": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/theming": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/blocks": "7.0.0-rc.3", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/components": "7.0.0-rc.3", + "@storybook/core-common": "7.0.0-rc.3", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/node-logger": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/theming": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "lodash": "^4.17.21", "ts-dedent": "^2.0.0" } }, "@storybook/addon-docs": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.0.0-beta.59.tgz", - "integrity": "sha512-oipJtO/O2+/0sC5n9r+9crHnz+f0XEAMkYN/O/H5B0Z+N6T3uP4xnKTFdowpBUcEP6UaRL2oNYHNywzILdQYlA==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.0.0-rc.3.tgz", + "integrity": "sha512-UPy+o7IBly2TgCQ7hviaExq++KQSPS7/+/8iLUdv81mtRm3hMBMARmom+wjXfciGHp1re1bazQQYoDsOcorDhA==", "dev": true, "requires": { "@babel/core": "^7.20.2", "@babel/plugin-transform-react-jsx": "^7.19.0", "@jest/transform": "^29.3.1", "@mdx-js/react": "^2.1.5", - "@storybook/blocks": "7.0.0-beta.59", - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/components": "7.0.0-beta.59", - "@storybook/csf-plugin": "7.0.0-beta.59", - "@storybook/csf-tools": "7.0.0-beta.59", + "@storybook/blocks": "7.0.0-rc.3", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/components": "7.0.0-rc.3", + "@storybook/csf-plugin": "7.0.0-rc.3", + "@storybook/csf-tools": "7.0.0-rc.3", "@storybook/global": "^5.0.0", "@storybook/mdx2-csf": "next", - "@storybook/node-logger": "7.0.0-beta.59", - "@storybook/postinstall": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/react-dom-shim": "7.0.0-beta.59", - "@storybook/theming": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/node-logger": "7.0.0-rc.3", + "@storybook/postinstall": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/react-dom-shim": "7.0.0-rc.3", + "@storybook/theming": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "fs-extra": "^11.1.0", "remark-external-links": "^8.0.0", "remark-slug": "^6.0.0", @@ -20135,113 +20135,113 @@ } }, "@storybook/addon-essentials": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.0.0-beta.59.tgz", - "integrity": "sha512-yVGQR8HT4OOZ2lMaRK4KsB6sahzIRvspwkwAEyk/tRm4NZ6KUxv05y1cMFlbMJ/JUX/tN5TBOwMIvumbUu/J+w==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.0.0-rc.3.tgz", + "integrity": "sha512-RLA1RgjwuDsRKp2QjBAx2XsgTZ+Dura2k8xCTyBLf0yxnleC8hiAxLwTJSSdDEUuiXxWsBbu0vhHzYnCCVTDnw==", "dev": true, "requires": { - "@storybook/addon-actions": "7.0.0-beta.59", - "@storybook/addon-backgrounds": "7.0.0-beta.59", - "@storybook/addon-controls": "7.0.0-beta.59", - "@storybook/addon-docs": "7.0.0-beta.59", - "@storybook/addon-highlight": "7.0.0-beta.59", - "@storybook/addon-measure": "7.0.0-beta.59", - "@storybook/addon-outline": "7.0.0-beta.59", - "@storybook/addon-toolbars": "7.0.0-beta.59", - "@storybook/addon-viewport": "7.0.0-beta.59", - "@storybook/core-common": "7.0.0-beta.59", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/node-logger": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", + "@storybook/addon-actions": "7.0.0-rc.3", + "@storybook/addon-backgrounds": "7.0.0-rc.3", + "@storybook/addon-controls": "7.0.0-rc.3", + "@storybook/addon-docs": "7.0.0-rc.3", + "@storybook/addon-highlight": "7.0.0-rc.3", + "@storybook/addon-measure": "7.0.0-rc.3", + "@storybook/addon-outline": "7.0.0-rc.3", + "@storybook/addon-toolbars": "7.0.0-rc.3", + "@storybook/addon-viewport": "7.0.0-rc.3", + "@storybook/core-common": "7.0.0-rc.3", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/node-logger": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", "ts-dedent": "^2.0.0" } }, "@storybook/addon-highlight": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.0.0-beta.59.tgz", - "integrity": "sha512-JY3nChLZCWtAzjOUnztbPQzaXA2CKHi2bB0xfdgMLeWLN5bhYNpcmwMyAdu34vy6MYOHRlZutkifksUMUI2nDg==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.0.0-rc.3.tgz", + "integrity": "sha512-MeFIKfDpFrF33TPdl2ko2rie485AhfG2n0MFXA73L8Yzj5JPV+LVNa5eIKUUFyOMUGSkVjfFS6n63F08eqHbCw==", "dev": true, "requires": { - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/global": "^5.0.0", - "@storybook/preview-api": "7.0.0-beta.59" + "@storybook/preview-api": "7.0.0-rc.3" } }, "@storybook/addon-links": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.0.0-beta.59.tgz", - "integrity": "sha512-9nDi8Zvy3mTBNTDIuZfIz6OevK2iCcUUOSspKn/1rJV+nMZ5xYtrWUGnW9P+z7WqOJ6CfXLIg4/sw97WLoJVyA==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.0.0-rc.3.tgz", + "integrity": "sha512-K2PMxVooGAgb8hCEU2oGUMzKjPLEPACH8NcRLs/fz9PKadepmijY0hBDC50SGkZd2HWSxXxyt6d5WaXTxhP8aw==", "dev": true, "requires": { - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/csf": "next", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/router": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/router": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "prop-types": "^15.7.2", "ts-dedent": "^2.0.0" } }, "@storybook/addon-measure": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.0.0-beta.59.tgz", - "integrity": "sha512-iCGVzoGFJUj2oVqe+W5itKTZ9d+fIDdCuHBYB6I3KTuwJq9BEO9JivoIJScghADO9gaq20fVb5Hf+5IWb0riAA==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.0.0-rc.3.tgz", + "integrity": "sha512-N0HjObHjktlgWvOQcOqyC6/vFXERHzH7aP8L1RRrSnz+mP0XDO+62eBZunlnDGu4uAECH+AV/7LO+bmTMohulg==", "dev": true, "requires": { - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/components": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/components": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59" + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3" } }, "@storybook/addon-outline": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.0.0-beta.59.tgz", - "integrity": "sha512-7GeLPyD+e4MNlMiLqa1GstvTQOqBeWDXClV+1QUa9dEbjqpe6SDLNWx0HoBvRFzW6/qtuutmxiNRJmBtvCVaWA==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.0.0-rc.3.tgz", + "integrity": "sha512-SocPRmzzu2wR3SiqMsPskfFumOd0Ph8MUTeJ2cwnaonqqHjjqxaEaFYio8AGmGaHLpY8PKtW0s75jU0oDh9Ezg==", "dev": true, "requires": { - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/components": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/components": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "ts-dedent": "^2.0.0" } }, "@storybook/addon-toolbars": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.0.0-beta.59.tgz", - "integrity": "sha512-1MJIAXbBI/E93c0z7Sm66xGNpzm3OQbfK+jShgdKHYAwWkv1HMGDAwIJdA4Z5bf4tuU2vri4SSdi4GnQlXy4EA==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.0.0-rc.3.tgz", + "integrity": "sha512-qnvMWZAa3ELRNiVjj1sy0dJb2GzE5fga9SbsbVQQT2zBvou2e8XbiPRw0WHdwUU2Zj9t9/PVjz2+av7P8B+Cqg==", "dev": true, "requires": { - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/components": "7.0.0-beta.59", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/theming": "7.0.0-beta.59" + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/components": "7.0.0-rc.3", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/theming": "7.0.0-rc.3" } }, "@storybook/addon-viewport": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.0.0-beta.59.tgz", - "integrity": "sha512-2cqs7+KKERWRpIE6Omfr/JaLcz8apu0JIJxL+pMUEQcYBl7noPNgXSOyDHVJYWcNM6cQTb8LkEKlZ9bJ5ut40w==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.0.0-rc.3.tgz", + "integrity": "sha512-GXBi7f4WNeM4yvKXKYNAMLDHauTOcLpimzf1wtyVapBLpwzcJHBaJTCHQ02yIcm6mU2TFbKXMmzC1uBZcCa+5w==", "dev": true, "requires": { - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/components": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/components": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/theming": "7.0.0-beta.59", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/theming": "7.0.0-rc.3", "memoizerific": "^1.11.3", "prop-types": "^15.7.2" } @@ -20445,22 +20445,22 @@ } }, "@storybook/blocks": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.0.0-beta.59.tgz", - "integrity": "sha512-3srAVSWxP07gGQuB309T2gqd7yP9b4rkMwMiIal3o7jsxYFHmZjRONJa52XAT2CQkqjJx1NoMdNlHNMnMzRehg==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.0.0-rc.3.tgz", + "integrity": "sha512-mh4LQk2f/Q9n7Sqo6t02CspHubXmSgDY4S5vF3dTgVBM/sD0OxkAY3Pv+HTsXH36lQHYYUft7U7OfhZapgS4ng==", "dev": true, "requires": { - "@storybook/channels": "7.0.0-beta.59", - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/components": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/channels": "7.0.0-rc.3", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/components": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/csf": "next", - "@storybook/docs-tools": "7.0.0-beta.59", + "@storybook/docs-tools": "7.0.0-rc.3", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/theming": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/theming": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "@types/lodash": "^4.14.167", "color-convert": "^2.0.1", "dequal": "^2.0.2", @@ -20475,15 +20475,15 @@ } }, "@storybook/builder-manager": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.0.0-beta.59.tgz", - "integrity": "sha512-cWm5eCGZraW9fAnL0Cp80M5QYMXeWZ538k9WWq2uG1FYXLCnEl6J7X4acJ4d2hYTF+XvwEMeWB5i4z435kgi/Q==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.0.0-rc.3.tgz", + "integrity": "sha512-aScwYA9MWtqgiD39SkcwUlrR9RFbngv7jPoOaVMdXuMgNabMNz9417L9bCwSPwgO4XZ5a/nSEbGNLfOHfBemsw==", "dev": true, "requires": { "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/core-common": "7.0.0-beta.59", - "@storybook/manager": "7.0.0-beta.59", - "@storybook/node-logger": "7.0.0-beta.59", + "@storybook/core-common": "7.0.0-rc.3", + "@storybook/manager": "7.0.0-rc.3", + "@storybook/node-logger": "7.0.0-rc.3", "@types/ejs": "^3.1.1", "@types/find-cache-dir": "^3.2.1", "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", @@ -20500,21 +20500,21 @@ } }, "@storybook/builder-vite": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.0.0-beta.59.tgz", - "integrity": "sha512-s7FbS/RisUrkmpSoY++FjUxYR3jXsCM5HE7rWxBkBFVwfURq6LcVC6ZZy9rdcp9NyvoW2ne2LqQP8sg+S2o00Q==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.0.0-rc.3.tgz", + "integrity": "sha512-v2d04PWfcITD7zI68d7XbCbOd+5vl3gIMEX5Xdsmuw3WcaqYxvDSE8GhL6zsBhrUyygV/8xhSaaxyfv8ImM0+w==", "dev": true, "requires": { - "@storybook/channel-postmessage": "7.0.0-beta.59", - "@storybook/channel-websocket": "7.0.0-beta.59", - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/core-common": "7.0.0-beta.59", - "@storybook/csf-plugin": "7.0.0-beta.59", + "@storybook/channel-postmessage": "7.0.0-rc.3", + "@storybook/channel-websocket": "7.0.0-rc.3", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/core-common": "7.0.0-rc.3", + "@storybook/csf-plugin": "7.0.0-rc.3", "@storybook/mdx2-csf": "next", - "@storybook/node-logger": "7.0.0-beta.59", - "@storybook/preview": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/node-logger": "7.0.0-rc.3", + "@storybook/preview": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "browser-assert": "^1.2.1", "es-module-lexer": "^0.9.3", "express": "^4.17.3", @@ -20527,53 +20527,53 @@ } }, "@storybook/channel-postmessage": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.0-beta.59.tgz", - "integrity": "sha512-TVvUBJpaxfmF9ap4lbA76ez4EJUM8BO4tpXn2w4tcs0HZUUFmCaltcUVk+KJLE2ZcQpDFNhXtR9nk1DPJtHy9A==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.0-rc.3.tgz", + "integrity": "sha512-1uptuCjA4vAvvoxNoIJPTIpSARzJnLU7eahRhTPwELBnCH0ObqvgInge0cvbYsaTRDNV90oBbEKlxLf1Zb1BhQ==", "dev": true, "requires": { - "@storybook/channels": "7.0.0-beta.59", - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/channels": "7.0.0-rc.3", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.0.3" } }, "@storybook/channel-websocket": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-7.0.0-beta.59.tgz", - "integrity": "sha512-C7a1vF6neYqyh7pqSf7JUtNntpF9eOzgcDVJAnjrP+nfqcdU3Av8pwO90K3M9qL2sP+V/oDuM/jA8fysxTs2BA==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-7.0.0-rc.3.tgz", + "integrity": "sha512-706jopde+OZZkqsmrRuwd9utusqiKianiF8cvjAxrxogSx8LwHk8jxrEKHxHiZUEWDS3JxJoIYSV8gxH9hcjsA==", "dev": true, "requires": { - "@storybook/channels": "7.0.0-beta.59", - "@storybook/client-logger": "7.0.0-beta.59", + "@storybook/channels": "7.0.0-rc.3", + "@storybook/client-logger": "7.0.0-rc.3", "@storybook/global": "^5.0.0", "telejson": "^7.0.3" } }, "@storybook/channels": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.0-beta.59.tgz", - "integrity": "sha512-dd0kHUfIM8oolqMq2R9/YcN5+NPq9hQz8upnAsiJZ++TrJyarBUAGaR5njC8gVhFKouxyUZsltVZ3X/9T1BIsg==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.0-rc.3.tgz", + "integrity": "sha512-jaODIck+um16Fn2k1vwHK9RNk2J8hLVyzLSkoGM40TsMF5nichwI3rA6225pLk015itJbhCAi/RhaMFBI+ZtsA==", "dev": true }, "@storybook/cli": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.0.0-beta.59.tgz", - "integrity": "sha512-jiZhBh5F0TJm8WZlojeaVC8GgGort9ppHeX+mXip5KGCyN3iewa/hdCt1CdkdQB/mzG4NPoEaP3QlyDDzfBFhQ==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.0.0-rc.3.tgz", + "integrity": "sha512-g1nWHLI1fiDK2dnLpmbhbrm6ZaAwuZkUgEGtlEQCPTHWVRZj2fJT0y5zjgBIhFpdkB/X8MZzgVxqhTJF0uX39Q==", "dev": true, "requires": { "@babel/core": "^7.20.2", "@babel/preset-env": "^7.20.2", - "@ndelangen/get-tarball": "^3.0.3", - "@storybook/codemod": "7.0.0-beta.59", - "@storybook/core-common": "7.0.0-beta.59", - "@storybook/core-server": "7.0.0-beta.59", - "@storybook/csf-tools": "7.0.0-beta.59", - "@storybook/node-logger": "7.0.0-beta.59", - "@storybook/telemetry": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@ndelangen/get-tarball": "^3.0.7", + "@storybook/codemod": "7.0.0-rc.3", + "@storybook/core-common": "7.0.0-rc.3", + "@storybook/core-server": "7.0.0-rc.3", + "@storybook/csf-tools": "7.0.0-rc.3", + "@storybook/node-logger": "7.0.0-rc.3", + "@storybook/telemetry": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "@types/semver": "^7.3.4", "boxen": "^5.1.2", "chalk": "^4.1.0", @@ -20775,27 +20775,27 @@ } }, "@storybook/client-logger": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.0-beta.59.tgz", - "integrity": "sha512-xEl+RNAsMZ+AvdatVd8GVzIvH6Dm4kaIXs3iyCRr4HXIdAxNB53tReqDDdzsK4LamMf5003Mlo4Szcb4QTkskQ==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.0-rc.3.tgz", + "integrity": "sha512-cC7lq+S4n5fFooDCyefgTAOfipadiZskNuzsQF7drE9nQLZ8GflLdmTKK//5NQUHKPzF7r+4Q5DAK4I3nqIkxA==", "dev": true, "requires": { "@storybook/global": "^5.0.0" } }, "@storybook/codemod": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.0.0-beta.59.tgz", - "integrity": "sha512-G8hR7ooZMkS0gpIP+2IutGaTu18Mb6wcjv5D6NidRW3R/t6PBS53tTsd0RYLCmEnmKgOn4gibBUgQtM1dtG0jQ==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.0.0-rc.3.tgz", + "integrity": "sha512-P965X5g4WIBfrYMLYPQIvwp9wfIf5bnUIVgwjeGUDLDLIst6RXmHGik9MHLy2Ic/MXTsf/kwK5qY9pj95t8DZg==", "dev": true, "requires": { "@babel/core": "~7.21.0", "@babel/preset-env": "~7.20.2", "@babel/types": "~7.21.2", "@storybook/csf": "next", - "@storybook/csf-tools": "7.0.0-beta.59", - "@storybook/node-logger": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/csf-tools": "7.0.0-rc.3", + "@storybook/node-logger": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "cross-spawn": "^7.0.3", "globby": "^11.0.2", "jscodeshift": "^0.14.0", @@ -20805,39 +20805,39 @@ } }, "@storybook/components": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.0.0-beta.59.tgz", - "integrity": "sha512-Cmfs2B0YgT7pqRJL6EhI6ipIQ2Ma72IVrFpM7gD6X8H81u8BjtsFFpfZnUUtkN9CbIsk8uQ52efv8aw38AzK9g==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.0.0-rc.3.tgz", + "integrity": "sha512-PeQFr2hZvLnxLswKihw1Ro5wCqmNZeSE4q+tFdifhLVIqP/OwHG+ShiLCHQ1aEa0Z3Ub+80m7uPzg69+y9m+bQ==", "dev": true, "requires": { - "@storybook/client-logger": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", "@storybook/csf": "next", "@storybook/global": "^5.0.0", - "@storybook/theming": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/theming": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "memoizerific": "^1.11.3", "use-resize-observer": "^9.1.0", "util-deprecate": "^1.0.2" } }, "@storybook/core-client": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.0.0-beta.59.tgz", - "integrity": "sha512-M/APRzOEyhjkhVXLHVs3lMkNI+MC11PF6Z2M8hXSlv+xqHSnC2bHGwoay5KSjLY29yEZkxuauCYwvOywzTdJQw==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.0.0-rc.3.tgz", + "integrity": "sha512-epUiHzFQNoEr5PYq9069SliQzHl5fVQj94aWdGZWCQPGldxiFtCNB7o32NzwwIVzXOKPzU38qg2B4738jt/1XQ==", "dev": true, "requires": { - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59" + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3" } }, "@storybook/core-common": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.0.0-beta.59.tgz", - "integrity": "sha512-oHj+QisjtPhAt4uvbBf8bdVLifsKyu2HkwTwy++eCnMGCEb/L370TFQyPqL4olJY7vVNHx2aFduUTP9qoUawrQ==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.0.0-rc.3.tgz", + "integrity": "sha512-uUIs14+35ubRcpYwuX0OHW05tSDC5jeNEY8gv2EjcexBLeNozfGV4Tf5/ncG8glVbp8jGUlu2S3XJZoHKHDSqQ==", "dev": true, "requires": { - "@storybook/node-logger": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/node-logger": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "@types/node": "^16.0.0", "@types/pretty-hrtime": "^1.0.0", "chalk": "^4.1.0", @@ -20859,9 +20859,9 @@ }, "dependencies": { "@types/node": { - "version": "16.18.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.14.tgz", - "integrity": "sha512-wvzClDGQXOCVNU4APPopC2KtMYukaF1MN/W3xAmslx22Z4/IF1/izDMekuyoUlwfnDHYCIZGaj7jMwnJKBTxKw==", + "version": "16.18.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.16.tgz", + "integrity": "sha512-ZOzvDRWp8dCVBmgnkIqYCArgdFOO9YzocZp8Ra25N/RStKiWvMOXHMz+GjSeVNe5TstaTmTWPucGJkDw0XXJWA==", "dev": true }, "ansi-styles": { @@ -20901,31 +20901,31 @@ } }, "@storybook/core-events": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.0-beta.59.tgz", - "integrity": "sha512-kmCui9J/u70m4dMaj8ZfqXwgbdPr5stYBTmwdB3sbiFDH4YJpI1QC4pYQdN7vQLMuLF6IDsVhNlJro/aeuwBEg==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.0-rc.3.tgz", + "integrity": "sha512-EBihNmxxiIJbPt6OhCTXFPl2T/9OXNVKtsy8hchBNEzp+UJGyeHx+t9K6tRvbcmt5TG/y7C7ZsYx9U28JTwNkg==", "dev": true }, "@storybook/core-server": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.0.0-beta.59.tgz", - "integrity": "sha512-OdbrZEnXmWy4ie6hNypEWQpFci9NciAavS6ggN1ga06OD1b2L3rrbFo+5nNKv9tHqlTDvyL2s1Da4JTYtVdMLg==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.0.0-rc.3.tgz", + "integrity": "sha512-211514C7w8hvu/bLP97KdF7TM8FpcchgDAhldODDvKFyxFTHMcQFj3ABlptsWFO6JxZsy32hG8qi6phFUtceQA==", "dev": true, "requires": { "@aw-web-design/x-default-browser": "1.4.88", "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-manager": "7.0.0-beta.59", - "@storybook/core-common": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/builder-manager": "7.0.0-rc.3", + "@storybook/core-common": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/csf": "next", - "@storybook/csf-tools": "7.0.0-beta.59", + "@storybook/csf-tools": "7.0.0-rc.3", "@storybook/docs-mdx": "next", "@storybook/global": "^5.0.0", - "@storybook/manager": "7.0.0-beta.59", - "@storybook/node-logger": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/telemetry": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/manager": "7.0.0-rc.3", + "@storybook/node-logger": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/telemetry": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "@types/detect-port": "^1.3.0", "@types/node": "^16.0.0", "@types/node-fetch": "^2.5.7", @@ -20958,9 +20958,9 @@ }, "dependencies": { "@types/node": { - "version": "16.18.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.14.tgz", - "integrity": "sha512-wvzClDGQXOCVNU4APPopC2KtMYukaF1MN/W3xAmslx22Z4/IF1/izDMekuyoUlwfnDHYCIZGaj7jMwnJKBTxKw==", + "version": "16.18.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.16.tgz", + "integrity": "sha512-ZOzvDRWp8dCVBmgnkIqYCArgdFOO9YzocZp8Ra25N/RStKiWvMOXHMz+GjSeVNe5TstaTmTWPucGJkDw0XXJWA==", "dev": true }, "ansi-styles": { @@ -21033,19 +21033,19 @@ } }, "@storybook/csf-plugin": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.0.0-beta.59.tgz", - "integrity": "sha512-+C5pWY1Bhr7vtDG7OI2wjKDKz1o7DFLiChG8M1hdX/o3TD97bh24GVmJW9GEXk+A+7rG7XuxHcu2x0piq3Fs8g==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.0.0-rc.3.tgz", + "integrity": "sha512-+r2m09o/5B846Q8ykDWjwPJSZXc3i4Z6vLc04SxIR/VJffF7K0Z/vFmTcPz8Qg5wFdfvy/HFqTLpaOJtVwWBdA==", "dev": true, "requires": { - "@storybook/csf-tools": "7.0.0-beta.59", + "@storybook/csf-tools": "7.0.0-rc.3", "unplugin": "^0.10.2" } }, "@storybook/csf-tools": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.0.0-beta.59.tgz", - "integrity": "sha512-b8wxDFKOFZS5CQUjmb+vToSERYmbpIkFSMv+7/jixfYdS1O6Z8z3mXxqm+XljkNrKhi6EID42D8RsxBNhg/8gg==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.0.0-rc.3.tgz", + "integrity": "sha512-I3QG2buAswIYVbYlstmZAamwLopW6daHj2+wrod+whTmeKShp0rbOrVkU0M3Hpj9CVzFM1/4YqCNOBkS2XTnsw==", "dev": true, "requires": { "@babel/generator": "~7.21.1", @@ -21053,7 +21053,7 @@ "@babel/traverse": "~7.21.2", "@babel/types": "~7.21.2", "@storybook/csf": "next", - "@storybook/types": "7.0.0-beta.59", + "@storybook/types": "7.0.0-rc.3", "fs-extra": "^11.1.0", "recast": "^0.23.1", "ts-dedent": "^2.0.0" @@ -21066,15 +21066,15 @@ "dev": true }, "@storybook/docs-tools": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.0.0-beta.59.tgz", - "integrity": "sha512-UatE0EFvPy2dsSa7zqcsQ5mUmGopKE+/2RyQkCE+tTqY38KssyOuHSrg0mc6dUvBZngD3AWKIOuNZlLB1Eg21w==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.0.0-rc.3.tgz", + "integrity": "sha512-1uGIMq0+t8AUJyj0jkta7Imr3vFLkX8oRXhX5zi7znjWMhgeXKskEFujvCcz7eI1NIU9x2WvFwbtSzWDpdC/0g==", "dev": true, "requires": { "@babel/core": "^7.12.10", - "@storybook/core-common": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/core-common": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "@types/doctrine": "^0.0.3", "doctrine": "^3.0.0", "lodash": "^4.17.21" @@ -21087,25 +21087,25 @@ "dev": true }, "@storybook/manager": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.0.0-beta.59.tgz", - "integrity": "sha512-xwSuk/izrjUn0hGzs6uiu+YfMZgvnyzGIrEWqPEwQWomW2oVyY/pdtCEsR/9Yv6smlLk4f6xh++1qG26XgceCg==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.0.0-rc.3.tgz", + "integrity": "sha512-8Q/vpHkvWQ/fZHRPFOgGC4Qhgpmafe9GV2QKk3yRA/p9zcW4UzP9fbL4qw6tq+5GLM/kFKArBu28ZA7L7sKB9A==", "dev": true }, "@storybook/manager-api": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.0.0-beta.59.tgz", - "integrity": "sha512-mNbqUNEzLWacxjACnXOfufmcMB70z/z5XDjoP1zYc6QDrnCaLF/L7FwMhTo1J2/6wvQXcvYj25RiCZHm75gMXQ==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.0.0-rc.3.tgz", + "integrity": "sha512-Pa+LabGYakPd9RuS8G7tCp3hPjZwGZL95Dj+yef0bM9WmYBimNjaUsqVJOGttuE4TLXjUIU9+58YImN7QrGfbQ==", "dev": true, "requires": { - "@storybook/channels": "7.0.0-beta.59", - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/channels": "7.0.0-rc.3", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/csf": "next", "@storybook/global": "^5.0.0", - "@storybook/router": "7.0.0-beta.59", - "@storybook/theming": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/router": "7.0.0-rc.3", + "@storybook/theming": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -21148,9 +21148,9 @@ "dev": true }, "@storybook/node-logger": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.0.0-beta.59.tgz", - "integrity": "sha512-DJOtqed/iL/Mpbci3ZwDmZwvnheqZzSOmrk2YsKmJagnQzS0A9+ZZg7tu/eFuvBnILmhVDzFBOloD8hXRSOC7w==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.0.0-rc.3.tgz", + "integrity": "sha512-ViWIJUdFUTrFtcoO88T3h55ryjl73aMNyn8vPvIgejJoJfYMTB5ErI4zLquN23HNc+H9AKKm/qMFFSf9xjGORQ==", "dev": true, "requires": { "@types/npmlog": "^4.1.2", @@ -21196,30 +21196,30 @@ } }, "@storybook/postinstall": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.0.0-beta.59.tgz", - "integrity": "sha512-/SD0kacKKkvhr2qLQlPrJY+pYyP819RfwZDL4QY56/YpOwzEwWNhZDksQDuJTNCu8tr2XTLyqlfm0wFwi/DaGg==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.0.0-rc.3.tgz", + "integrity": "sha512-kOCJjixFwdnZxR6K45XR+6Q4UBzOLdabzh3aednQ/piiqj7ZdldaF75ZfoDhKPK4cjrd5AGU6/OWbsJQ+DLVMg==", "dev": true }, "@storybook/preview": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.0.0-beta.59.tgz", - "integrity": "sha512-4ve/fELgVFFShX7P8QfEiW5BUZ2oZxBi7AKEPJ6gR7ZXjAmuKE7Potn1WWKH2T9uRUZh8nM6v+Waf0WU5q7bww==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.0.0-rc.3.tgz", + "integrity": "sha512-7FeJjOV2pNVesdNljzy1DvzhhShZ/pjQOmhFs4GXBXTJCPNQP5iZTSR6b3ehN8L96yVPT5JsdjX4MiyGw2QPnQ==", "dev": true }, "@storybook/preview-api": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.0-beta.59.tgz", - "integrity": "sha512-ZRTStJ57wi/ovN0Y1OXp5Ap9WJ5KDDNfmk8cCVgyyPZ1QrwqnrTkHwbLl+DlmFYMJBAiF0s2Rfvcm70hQfJK8Q==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.0-rc.3.tgz", + "integrity": "sha512-iIifbFRmrFIlLzApTZyCWmI3JNt2IxfM8Dm4rNlMJBifjtgHfpxA+DsQI8mW8UGM64a8N1wF7azkN6cnRz6v2w==", "dev": true, "requires": { - "@storybook/channel-postmessage": "7.0.0-beta.59", - "@storybook/channels": "7.0.0-beta.59", - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/core-events": "7.0.0-beta.59", + "@storybook/channel-postmessage": "7.0.0-rc.3", + "@storybook/channels": "7.0.0-rc.3", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/core-events": "7.0.0-rc.3", "@storybook/csf": "next", "@storybook/global": "^5.0.0", - "@storybook/types": "7.0.0-beta.59", + "@storybook/types": "7.0.0-rc.3", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -21232,18 +21232,18 @@ } }, "@storybook/react-dom-shim": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.0.0-beta.59.tgz", - "integrity": "sha512-YI8DiC7kMutDx2H8q/jVNotjTAv/W74a9LzYlPwn67yWnyj4rVNFfCTCsd/ji5rLDe3SZZc/b3sN7TOumCdBQQ==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.0.0-rc.3.tgz", + "integrity": "sha512-3rQsOPwNlHyV93311GaGP28BFobEaNfw+djxDBxocNrL07xvY3u/XE6bShKOJ6R28ATaGwXUxmj2Cwtd2GxASg==", "dev": true }, "@storybook/router": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.0.0-beta.59.tgz", - "integrity": "sha512-WBX6d5XzElzd0bUHaV5RxlTbynhaJOU1vMB13EgAMgjN0orqOJcTxou/EtjsqqxxnXGwDCNhkjZgY3wTAhhN4g==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.0.0-rc.3.tgz", + "integrity": "sha512-D3Uoz1WRFWH3QUjyrDObwCVRYXdSGZGpCN2eh6gjlKC9VQ9ohaGerEdXSsYnAj2lovhfze8oXp+PS1VKJTlpgg==", "dev": true, "requires": { - "@storybook/client-logger": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", "memoizerific": "^1.11.3", "qs": "^6.10.0" } @@ -21298,13 +21298,13 @@ } }, "@storybook/telemetry": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.0.0-beta.59.tgz", - "integrity": "sha512-63ynNAYq8/SV7VUzH90rrLy//Kj5F9ALiF2VFoqpQb8PPeX8f0UYZMyCyPnnQPSZju36xtXnx46rNUYkrV42Dw==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.0.0-rc.3.tgz", + "integrity": "sha512-0vPVA1aTWCA6jr3iSOPCu8x3zpNUsyxYN30B4b6d3o2iO6YU/CZdm8rxzInv+bKkz2fHFDzCDsfZTgQ5VEggEw==", "dev": true, "requires": { - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/core-common": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/core-common": "7.0.0-rc.3", "chalk": "^4.1.0", "detect-package-manager": "^2.0.1", "fetch-retry": "^5.0.2", @@ -21351,55 +21351,55 @@ } }, "@storybook/theming": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.0-beta.59.tgz", - "integrity": "sha512-LBSZWZq/b4kUC9QsknUlOvahQ1aAKRjGnZ8GRbsyTIXy/8EvMx4YTGPOjbnS+3H5DIhm+YwG/OM8efJX75Yc1A==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.0-rc.3.tgz", + "integrity": "sha512-sVt8Egv9CmeDnTJYPsyvlvHE+GX8hAczc1SvuoLeXs/1gsEsnVn6ovCFGSV0Rc7sAr5oSv794/pFUsboU8tYqg==", "dev": true, "requires": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" } }, "@storybook/types": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.0-beta.59.tgz", - "integrity": "sha512-vDhf84KeE8zUmy1LGZLdhrrLCLTTh2Fd8ddSJs8M94PfiToPcawf0KMzaE8yPY9JHl0CtubvjPVDX6xw4v0oAw==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.0-rc.3.tgz", + "integrity": "sha512-2xxgs4zL1QZUdut+Zt5sQdgNCUP0n/y5CRbvEpDwkcuE4KWbfJYixJNumioZ6UwK17ZE9gf4ZxVgttvexmW8eg==", "dev": true, "requires": { - "@storybook/channels": "7.0.0-beta.59", + "@storybook/channels": "7.0.0-rc.3", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "^2.0.0" } }, "@storybook/web-components": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.0.0-beta.59.tgz", - "integrity": "sha512-xbo5pbV9OC2gA75s7sN8TowEusVKiklpH8yBfvWFFouhNGjJ7XTPWN7Z42gw6xxlaqJNfnT59eBLV/DMbO6qmQ==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.0.0-rc.3.tgz", + "integrity": "sha512-enG/VoXu7i5r39Ao4qg6a4Q/aPX5LYkkFaj955BLkUJXW1ZANwjRqo6JSquC4tW8Dm1FYN8sJBAzO6M8YRlbnA==", "dev": true, "requires": { - "@storybook/client-logger": "7.0.0-beta.59", - "@storybook/core-client": "7.0.0-beta.59", - "@storybook/docs-tools": "7.0.0-beta.59", + "@storybook/client-logger": "7.0.0-rc.3", + "@storybook/core-client": "7.0.0-rc.3", + "@storybook/docs-tools": "7.0.0-rc.3", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.0-beta.59", - "@storybook/preview-api": "7.0.0-beta.59", - "@storybook/types": "7.0.0-beta.59", + "@storybook/manager-api": "7.0.0-rc.3", + "@storybook/preview-api": "7.0.0-rc.3", + "@storybook/types": "7.0.0-rc.3", "ts-dedent": "^2.0.0" } }, "@storybook/web-components-vite": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.0.0-beta.59.tgz", - "integrity": "sha512-G7GHjYv5FSn1C8zWVfrOhM4h9NlnxHwv2HMKXXXSlOfUtDsTJm05OV7N0IDqnPdbEduqJnb4WCB0KdQwOLKrCg==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.0.0-rc.3.tgz", + "integrity": "sha512-A/+tm879pmD9UwWDJdYimwuIaSQPYyf2FSwL/+zIJ6ZS63LFimkIkt/C7hWD6pYNzk1w36VESfRhEeP3Hu4VNA==", "dev": true, "requires": { - "@storybook/builder-vite": "7.0.0-beta.59", - "@storybook/core-server": "7.0.0-beta.59", - "@storybook/node-logger": "7.0.0-beta.59", - "@storybook/web-components": "7.0.0-beta.59", + "@storybook/builder-vite": "7.0.0-rc.3", + "@storybook/core-server": "7.0.0-rc.3", + "@storybook/node-logger": "7.0.0-rc.3", + "@storybook/web-components": "7.0.0-rc.3", "magic-string": "^0.27.0" } }, @@ -24557,9 +24557,9 @@ "dev": true }, "core-js-compat": { - "version": "3.29.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.0.tgz", - "integrity": "sha512-ScMn3uZNAFhK2DGoEfErguoiAHhV2Ju+oJo/jK08p7B3f3UhocUrCCkTvnZaiS+edl5nlIoiBXKcwMc6elv4KQ==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.1.tgz", + "integrity": "sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA==", "dev": true, "requires": { "browserslist": "^4.21.5" @@ -24969,9 +24969,9 @@ "dev": true }, "ejs": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", - "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", "dev": true, "requires": { "jake": "^10.8.5" @@ -26096,9 +26096,9 @@ "dev": true }, "flow-parser": { - "version": "0.200.1", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.200.1.tgz", - "integrity": "sha512-N6gxgo0iQx0G2m3aJjg3RLxNLUG3EBYgBN/xDDPGQXSjvqNkTdEd2t1myE36Xi7GndZQWngDP7jf0GvxdL6pRg==", + "version": "0.201.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.201.0.tgz", + "integrity": "sha512-G4oeDNpNGyIrweF9EnoHatncAihMT0tQgV6NMdyM5I7fhrz9Pr13PJ2KLQ673O4wj9KooTdBpeeYHdDNAQoyyw==", "dev": true }, "for-each": { @@ -27379,12 +27379,12 @@ } }, "jest-haste-map": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.4.3.tgz", - "integrity": "sha512-eZIgAS8tvm5IZMtKlR8Y+feEOMfo2pSQkmNbufdbMzMSn9nitgGxF1waM/+LbryO3OkMcKS98SUb+j/cQxp/vQ==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", + "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", "dev": true, "requires": { - "@jest/types": "^29.4.3", + "@jest/types": "^29.5.0", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", @@ -27392,8 +27392,8 @@ "fsevents": "^2.3.2", "graceful-fs": "^4.2.9", "jest-regex-util": "^29.4.3", - "jest-util": "^29.4.3", - "jest-worker": "^29.4.3", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", "micromatch": "^4.0.4", "walker": "^1.0.8" } @@ -27405,12 +27405,12 @@ "dev": true }, "jest-util": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.4.3.tgz", - "integrity": "sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", + "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", "dev": true, "requires": { - "@jest/types": "^29.4.3", + "@jest/types": "^29.5.0", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -27455,13 +27455,13 @@ } }, "jest-worker": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.4.3.tgz", - "integrity": "sha512-GLHN/GTAAMEy5BFdvpUfzr9Dr80zQqBrh0fz1mtRMe05hqP45+HfQltu7oTBfduD0UeZs09d+maFtFYAXFWvAA==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", + "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", "dev": true, "requires": { "@types/node": "*", - "jest-util": "^29.4.3", + "jest-util": "^29.5.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -28289,9 +28289,9 @@ "dev": true }, "minipass": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", - "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", + "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", "dev": true }, "minizlib": { @@ -29765,9 +29765,9 @@ "dev": true }, "regexpu-core": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.1.tgz", - "integrity": "sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "requires": { "@babel/regjsgen": "^0.8.0", @@ -30517,12 +30517,12 @@ "dev": true }, "storybook": { - "version": "7.0.0-beta.59", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.0.0-beta.59.tgz", - "integrity": "sha512-YqG++MuzR1b6caFqVPZAHJKaBml0LL9OfhLtk+dCfsVNBAF5ZHuzXw4Okl+HTb6Fzup/LNmca3W1fM/iyDZ91w==", + "version": "7.0.0-rc.3", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.0.0-rc.3.tgz", + "integrity": "sha512-1EFr7o7dcgFKsI6TBqvxYEKGPzKvJ8qzCl3BM/1kZP5BmWqQPbanOQLVkTb4zDb5e+Q+ibDNH5k8D1lQFdsHcg==", "dev": true, "requires": { - "@storybook/cli": "7.0.0-beta.59" + "@storybook/cli": "7.0.0-rc.3" } }, "stream-shift": { diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index b28138d72b..4658635c7f 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -77,13 +77,13 @@ "@open-wc/testing": "^3.1.7", "@playwright/test": "^1.30.0", "@rollup/plugin-json": "^6.0.0", - "@storybook/addon-a11y": "^7.0.0-beta.59", - "@storybook/addon-actions": "^7.0.0-beta.59", - "@storybook/addon-essentials": "^7.0.0-beta.59", - "@storybook/addon-links": "^7.0.0-beta.59", + "@storybook/addon-a11y": "^7.0.0-rc.3", + "@storybook/addon-actions": "^7.0.0-rc.3", + "@storybook/addon-essentials": "^7.0.0-rc.3", + "@storybook/addon-links": "^7.0.0-rc.3", "@storybook/mdx2-csf": "^1.0.0-next.5", - "@storybook/web-components": "^7.0.0-beta.59", - "@storybook/web-components-vite": "^7.0.0-beta.59", + "@storybook/web-components": "^7.0.0-rc.3", + "@storybook/web-components-vite": "^7.0.0-rc.3", "@types/chai": "^4.3.4", "@types/lodash-es": "^4.17.6", "@types/mocha": "^10.0.0", @@ -118,7 +118,7 @@ "rollup-plugin-dts": "^5.2.0", "rollup-plugin-esbuild": "^5.0.0", "rollup-plugin-url": "^3.0.1", - "storybook": "^7.0.0-beta.59", + "storybook": "^7.0.0-rc.3", "tiny-glob": "^0.2.9", "typescript": "^4.9.5", "vite": "^4.1.4",